在Java中获得CST和EST时间相同

时间:2014-08-25 07:15:54

标签: java

我和EST和CST的时间相同。请找到下面的代码。

Calendar.getInstance(TimeZone.getTimeZone("EST"));Calendar.getInstance(TimeZone.getTimeZone("CST"));都返回同一时间。

请帮我解决此问题。

1 个答案:

答案 0 :(得分:5)

您获得相同时间的原因是因为EST返回标准时间而CST是夏令时。

Date today = new Date();
DateFormat df = new SimpleDateFormat("HH:mm:SS z");
df.setTimeZone(TimeZone.getTimeZone("US/Eastern"));
String time = df.format(today);
System.out.println(time);
df.setTimeZone(TimeZone.getTimeZone("EST"));
time = df.format(today);
System.out.println(time);
df.setTimeZone(TimeZone.getTimeZone("CST"));
time = df.format(today);
System.out.println(time);

这是输出:

04:55:839 EDT
03:55:839 EST
03:55:839 CDT

EST时间不是正确的时间,因为它现在实际上是04:55,所以US/Eastern会给你正确的(EDT)时间。根据经验,我建议始终使用US/EasternUS/Central格式来保证安全。