java - 如何将 Java 日期转换为 HTTP If-Modified-Since 日期格式?

标签 java http

我很惊讶未能找到如何将 Java Date 对象转换为有效的字符串 HTTP If-Modified-Since日期格式。

我找到了 question about data format它回答了什么 格式,但没有回答如何 生成该格式。

我找到的最接近的解决方案是 new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");,但是它不起作用,因为 HTTP 服务器只接受 GMT时区。

解决方案是要么正确添加时区信息(不引起时移),要么根据当前时区信息手动应用时移,并手动附加“GMT”。

但我很难相信没有效用函数可以做到这一点。至少 Apache HttpCommons 应该有这样的代码。这不是火箭科学。它是与 Http Server 配合所需的基本功能之一。

我谷歌搜索失败了吗?生成 If-Modified-Since header 的最简单可靠的方法是什么?

最佳答案

您可以使用 org.apache.http.impl.cookie.DateUtils .

使用的方法是formatDate(Date date, String pattern) - 字符串模式允许 RFC 1036、RFC 1123(在同一类中声明的常量)。

如果你需要依赖:

<dependency>
   <groupId>org.apache.httpcomponents</groupId>  
   <artifactId>httpclient</artifactId>
  <version>4.3.3</version>
</dependency>

编码愉快!!

关于java - 如何将 Java 日期转换为 HTTP If-Modified-Since 日期格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57409904/

相关文章:

java - Android Studio (IntelliJ) 错误信息

java - FacebookSdk 尝试在空对象引用上调用虚拟方法 'android.view.View android.view.View.findViewById(int)'

http - 在过期 session : HTTP 401 response causes browser to display login window 上休息调用

http - 是否使用 https 执行登录,但随后 http 中的所有内容都毫无意义?

java - SSL 握手和服务器响应

asp.net-mvc-3 - 是否可以将 DELETE 作为 ASP.NET MVC3+ 的 Http 动词?

java - 如何在 Windows 操作系统中使用 Runtime.exex() 从单个类的单独命令窗口中调用多个 java 程序?

java - 对文本文件Java进行数学计算的性能

java - java中的位操作

http - 为什么 http 使用 CRLF 作为行分隔符?