【发布时间】:2013-03-12 10:46:49
【问题描述】:
鉴于此代码...
String date = "11:00 AM";
SimpleDateFormat sdf = new SimpleDateFormat("h:mm a");
sdf.setTimeZone(TimeZone.getTimeZone("US/Eastern")); // --> should be GMT-4
TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
Date parse = sdf.parse(date); // -- gives Thu Jan 01 16:00:00 GMT 1970
为什么日期解析给我的是 16:00 而不是 15:00?
【问题讨论】:
-
美国东部标准时间上午 11:00 是格林威治标准时间的 16:00。所以输出是正确的,更多信息在这里:wwp.greenwichmeantime.in/to/est/index.htm
-
那是因为
US/Eastern是GMT-5而不是GMT-4。