在java中获得相同的CST和EST时间

在java中获得相同的CST和EST时间,java,Java,我得到的EST和CST时间相同。请查找下面的代码 Calendar.getInstance(TimeZone.getTimeZone(“EST”)和 Calendar.getInstance(TimeZone.getTimeZone(“CST”)两者同时返回 请帮助我解决此问题。您获得相同时间的原因是EST返回标准时间,而CST返回夏时制 这是输出: 美国东部标准时间不是正确的时间,因为现在实际上是04:55,所以美国/东部标准时间将为您提供正确的(美国东部标准时间)时间。根据经验,为了安全起见

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

Calendar.getInstance(TimeZone.getTimeZone(“EST”)
Calendar.getInstance(TimeZone.getTimeZone(“CST”)两者同时返回


请帮助我解决此问题。

您获得相同时间的原因是EST返回标准时间,而CST返回夏时制

这是输出:


美国东部标准时间不是正确的时间,因为现在实际上是04:55,所以美国/东部标准时间将为您提供正确的(美国东部标准时间)时间。根据经验,为了安全起见,我建议始终使用
US/Eastern
US/Central
格式。

请记住,“java.util.Date”值代表世界上任何时区的同一时刻。在java中,是否可以分别从EST或CST获取“US/Eastern或US/Central”?您需要的是白天时间(美国/东部和美国/中部),不是标准的,因为它们跟踪夏时制(时钟在3月和11月切换)。正如你所看到的,东部标准时间不可靠。
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