在java中解析HTTP 1.0头日期/时间戳

时间:2014-11-06 21:50:24

标签: java apache http response datestamp

我正在使用Apache Client发送HTTP / 1.0请求并在java中接收响应。

现在我遇到了问题:响应标题包含属性“Date”,可能是这三种格式:

  • Sun, 06 Nov 1994 08:49:37 GMT // RFC 822,由RFC 1123更新
  • Sunday, 06-Nov-94 08:49:37 GMT // RFC 850,已被RFC 1036废弃
  • Sun Nov 6 08:49:37 1994 // ANSI C的asctime()格式

我的问题是我可以使用SimpleDateFormat来解析这三种格式中的一种,但我找不到一个很好的解决方案来解析这三种格式中的任何/所有格式。

(但HTTP / 1.0协议需要支持所有这些格式,我只能支持其中一种格式)

非常感谢

2 个答案:

答案 0 :(得分:2)

如果您不能将时间(以毫秒为单位)放入服务器响应标头的日期字段(不符合http规范),那么我认为唯一的方法如下:

创建三种格式  然后用每种格式解析日期值并返回或使用没有抛出解析异常的值。

希望它有所帮助。

答案 1 :(得分:1)

使用为此目的提供的DateUtil