Ответ 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);
HTTP Last-Modified заголовок содержит дату в следующем формате (пример): Wed, 09 Apr 2008 23:55:38 GMT
Самый простой способ проанализировать java.util.Date из этой строки?
Это должно быть довольно близко
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);
DateUtil.parseDate(dateString)
от http-компонентов apache
(legacy: DateUtil.parseDate(dateString)
(из apache commons-httpclient))
Он имеет правильный формат, определенный как константа, которая, как гарантируется, будет соответствовать протоколу.
RFC 2616 определяет три разных формата даты, которые должен понять соответствующий клиент.
Apache HttpClient предоставляет DateUtil, который соответствует стандарту:
Date date = DateUtils.parseDate( headerValue );
Если вы используете URLConnection
s, есть уже удобный метод.
См URLConnection # getLastModified
Этот метод анализирует строку даты и возвращает значение в миллисекундах. Затем вы можете с радостью создать Date
с этим значением.
При использовании нового 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 определяет этот формат.