谁能说三件事:
如何从java.util.Date实例检索TimeZone?
我想我可以通过执行timeZone.getDSTSavings来了解夏令时,但是我面临的问题是,即使我将系统的日期设置为2012年2月1日,我仍然会获得正值(我猜3600000)
如何将EST时间转换为EDT,反之亦然?
最佳答案
如何从java.util.Date实例检索TimeZone?
没有这样的事情。 Date
只是代表Unix时代(即UTC 1970年1月1日午夜)以来的毫秒数。它与特定的日历系统或时区无关。换句话说,如果我和一个朋友在一起通话(时延为零;)并且我点击了手指,我们都会同意点击该位置的Date
-即使我使用公历,他使用儒略历,即使我在伦敦,他在纽约。时间是同一时刻。
如何知道夏令时是否适用?我想我可以通过执行timeZone.getDSTSavings来知道,但是我面临的问题是,即使我将系统的日期设置为2012年2月1日,我仍然会得到正值(我猜是3600000)
理想情况下,使用Joda Time代替java.util.Date
/ Calendar
/ TimeZone
,但是在TimeZone
中,您可以使用TimeZone.getOffset(long)
查找与UTC的偏移量,或者使用TimeZone.inDaylightTime(Date)
给出是/否回答。
如何将EST时间转换为EDT,反之亦然?
通常这是一个无效的问题-因为在任何时候都适用EST或EDT。通常,您从一个时区转换为另一个时区,并且“ EDT”和“ EST”不是不同的时区-它们是同一时区内的不同偏移量。您所要求的事实表明,您可能从一开始就不正确地对数据建模(不幸的是,使用日期/时间值很容易做到)。请给我们更多信息,我们也许可以为您提供更多帮助。