Ответ 1
Я бы предложил принять дату как String
и самостоятельно разобрать ее. Вот так:
@GET
@Path("/generateInfo")
@Produces(MediaType.APPLICATION_JSON)
public String generateInfo(
@QueryParam("a") String a,
@QueryParam("b") String b,
@QueryParam("date") String date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dateObj = sdf.parse(date);
return "hello world";
}
Способ сделать этот запрос через браузер:
http://localhost/your_service/generateInfo?date=2013-02-14
Что нужно учитывать при оформлении дат:
-
SimpleDateFormat
очень гибкий при разборе различных форматов дат. Стандарт ISO для строк даты:yyyy-MM-dd
-
API дат Joda Java принят как более полная реализация даты/времени, а некоторые считают, что он более оптимизирован, чем API родной даты Java, особенно для парсинга дат.
-
часто лучше указывать даты как временные метки времени, особенно если ваше приложение работает в разных часовых поясах. Тем не менее, вы должны знать о проблемах кеширования HTTP при принятии отметки времени эпохи (например, если ваши клиенты не усекают временные метки эпохи, тогда вы получите много промахов в кеше). Я хотел бы вернуться к ISO-8601, поскольку отформатированные даты проще для HTTP-кеша.