我有一个以下格式的日期对象:
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/