我是Java的新手,因此很长一段时间以来一直无法弄清这一点。

我正在使用Windows XP,并且机器设置为TimeZone:美国东部时间(美国和加拿大)

我有一个Java应用程序,它需要当前系统时间和时区信息,并向文件中写入一个字符串,如:20101012 15:56:00 EST。

当我更改系统日期时,上面的最后一个日期部分,即:时区,从EST更改为EDT。

准确:从11月(例如:2009年11月)到3月(2010年3月)是EST,否则是EDT。

EST是我想要的总是而不是EDT。

是否有任何特定的类/函数,可以随时将其读取为EST?

等待回应。

多谢您的回覆。
好吧,我忘了提到几件事。

  • 我希望将我的机器设置为:Windows时区设置中的美国东部时间(美国和加拿大)。
  • 简单来说,我想做的是:获取机器时间,并将其写入文本文件
  • 我知道夏令时发生在三月到十一月之间。

  • 但是问题是,当我将机器时间写入文件时,如果不存在夏令时(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/

    10-13 05:53