HTTP Last-Modified заголовок содержит дату в следующем формате (пример): Wed, 09 Apr 2008 23:55:38 GMT
Самый простой способ проанализировать java.util.Date из этой строки?
Как анализировать дату из HTTP Last-Modified заголовка?
Ответ 1
Это должно быть довольно близко
String dateString = "Wed, 09 Apr 2008 23:55:38 GMT";
SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");
Date d = format.parse(dateString);
Ответ 2
DateUtil.parseDate(dateString)
от http-компонентов apache
(legacy: DateUtil.parseDate(dateString)
(из apache commons-httpclient))
Он имеет правильный формат, определенный как константа, которая, как гарантируется, будет соответствовать протоколу.
Ответ 3
RFC 2616 определяет три разных формата даты, которые должен понять соответствующий клиент.
Apache HttpClient предоставляет DateUtil, который соответствует стандарту:
Date date = DateUtils.parseDate( headerValue );
Ответ 4
Если вы используете URLConnection
s, есть уже удобный метод.
См URLConnection # getLastModified
Этот метод анализирует строку даты и возвращает значение в миллисекундах. Затем вы можете с радостью создать Date
с этим значением.
Ответ 5
java.time
При использовании нового Java Date and Time API код будет просто:
ZonedDateTime zdt = ZonedDateTime.parse("Wed, 09 Apr 2008 23:55:38 GMT", DateTimeFormatter.RFC_1123_DATE_TIME);
Класс DateTimeFormatter
предопределяет константу для этого конкретного формата в RFC_1123_DATE_TIME
. Как следует из названия, RFC 1123 определяет этот формат.