【发布时间】:2014-06-10 10:01:34
【问题描述】:
我一直在尝试转换从纪元到今天的时间,并以东部标准时间显示。这是远程机器上的输出(它是远程托管的):
Date now = new Date(System.currentTimeMillis());
System.out.println(now.toString());
// Thu Apr 24 14:36:11 MST 2014
不知道MST 是什么,但我想在 EST 中获取自纪元以来的当前毫秒数,并在 EST 中显示结果。
无论我做什么,我都无法让夏令时工作(目前是 EST 时区的夏令时);我要么以 PST、GMT 或 UTC 结束,当我得到“EST”时,要么是某个随机值,要么是落后 1 小时或落后 3 小时。
我希望使用此 DateFormat 格式化输出:
DateFormat EXPIRE_FORMAT = new SimpleDateFormat("MMM dd, yyyy h:mm a z");
【问题讨论】:
-
你现在在哪里?此外,
SimpleDateFormat有一个setTimeZone方法。 -
我来自澳大利亚墨尔本,拥有东部标准时间 (EST) 这三个字母代码不是唯一的。
-
从技术上讲,现在 EST 不适用,而是 EDT(东部夏令时间)。您可能只是指“东部时间”(标准时间或日光时间,具体取决于适用的时间)。您只需要应用一个时区。您可以使用
"America/New_York",或者如果您愿意,可以使用"America/Toronto"或"America/Montreal"。 -
@PeterLawrey - 另外,感谢您提及缩写问题。 Time zone abbreviations 是高度模糊和重叠的——但有些人似乎认为它们是唯一的键。 :)
标签: java datetime timezone date-format