我是Java的新手,因此很长一段时间以来一直无法弄清这一点。
我正在使用Windows XP,并且机器设置为TimeZone:美国东部时间(美国和加拿大)。
我有一个Java应用程序,它需要当前系统时间和时区信息,并向文件中写入一个字符串,如:20101012 15:56:00 EST。
当我更改系统日期时,上面的最后一个日期部分,即:时区,从EST更改为EDT。
准确:从11月(例如:2009年11月)到3月(2010年3月)是EST,否则是EDT。
EST是我想要的总是而不是EDT。
是否有任何特定的类/函数,可以随时将其读取为EST?
等待回应。
多谢您的回覆。
好吧,我忘了提到几件事。
但是问题是,当我将机器时间写入文件时,如果不存在夏令时(DST),则写为2010 01 12 15:56:00 EST;如果DST是,则写为20101012 15:56:00 EDT。展示。
我担心的是,无论是否是DST,我都希望始终编写EST。
最佳答案
我认为您不应该按照您的建议去做。
您是说无论系统时区当前是什么(东部时间不是您的时区,而是UTC + 5或+4是),您都希望它显示EST。这是完全错误的。假设是在夏天,并且您的计算机认为本地时间是2010/6/15 15:00。您打印当前时间,您将得到:
无论出于何种原因,您都认为EDT令人不快,因此您将其更改为EST:
但是,如果您随后在接下来的一个小时内将该摘要发送给其他人,他们将被迫认为您是从 future 出发的!由于EST的15:00:00是美国东部时间的16:00:00。
关于JAVA TimeZone发行EDT与EST,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3933368/