java - SimpleDateFormat 不维护时区

标签 java datetime simpledateformat

我有一个以下格式的日期对象:

2013 年 1 月 20 日星期日 10:12:27 GMT+02:00

上述时间正确出现在microsoft outlook中:

Sun 1/20/2013 12:12 PM(这是 GMT+2 >> 客户端时区的时间)

当尝试使用 SimpleDateFormat 格式化日期对象以显示在 outlook 中时,使用以下代码:

SimpleDateFormat sdf=new SimpleDateFormat(
    "EEE M/d/yyyy hh:mm a");
    String receivedDate = sdf.format(email.getDateTimeReceived());

格式化后的结果为:

2013 年 1 月 20 日星期日上午 10:12

所以缺少时差的两个小时。

请告知如何解决这个问题,谢谢。

最佳答案

如果我没理解错的话,您想使用 GMT 时区格式化日期。

DateFormat dateFormat = new SimpleDateFormat("EEE M/d/yyyy hh:mm a");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
String formattedDate = dateFormat.format(date);

关于java - SimpleDateFormat 不维护时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14423696/

相关文章:

java - JTextPane 中未呈现 CSS 填充

C++,将 OADate 转换为 struct tm

python - Pandas datetime 函数获取季度末的日期

java - 无法将 Json 中的 String 解析为 Date,UnparsableDateException

java - 如何找到正在执行的 ant 目标的名称?

Java:使用循环创建目录

java.util.ArrayList 无法转换为 java.lang.Comparable

php - 如何仅从日期时间列中选择日期?

java - 在 Java 中创建自定义周计数器?

java - 两个 Calendar 对象的小时差