如何从HTTP Last-Modified标头解析日期?

时间:2009-12-18 19:15:05

标签: java http date http-headers

HTTP Last-Modified标头包含以下格式的日期(示例):
Wed, 09 Apr 2008 23:55:38 GMT
从这个字符串中解析 java.util.Date 的最简单方法是什么?

4 个答案:

答案 0 :(得分:69)

这应该非常接近

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);

SimpleDateFormat

答案 1 :(得分:62)

来自apache http-components

DateUtil.parseDate(dateString)

(遗产:DateUtil.parseDate(dateString)(来自apache commons-httpclient))

它具有定义为常量的正确格式,保证符合协议。

答案 2 :(得分:23)

RFC 2616定义了符合条件的客户必须理解的三种不同日期格式。

Apache HttpClient提供符合标准的DateUtil:

https://hc.apache.org/httpcomponents-client-4.3.x/httpclient/apidocs/org/apache/http/client/utils/DateUtils.html

https://apache.googlesource.com/httpclient/+/4.3.x/httpclient/src/main/java/org/apache/http/client/utils/DateUtils.java

Date date = DateUtils.parseDate( headerValue );

答案 3 :(得分:16)

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定义了这种格式。