我正在检查DayLight保存时间,因为我使用的是美国时区。由于DST于2013年3月10日凌晨2:00在美国开始,并将于2013年11月3日凌晨2:00结束。所以我们必须在凌晨2点转发时钟1小时,当它结束时,必须在凌晨2点恢复时钟1小时。我只是想检查DST结束时凌晨2:00的实际时间。它在DST开始时工作正常,但DST结束时它不工作。这里是我试过的代码示例:问题得到结束DayLight保存时间
TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
Calendar cal =Calendar.getInstance();
if (TimeZone.getDefault().useDaylightTime())
{
for(int i = 0; i< 5 ; ++i)
{
cal.set(2013,10,03,1,57+i,60);
long timemillis = cal.getTimeInMillis();
setCurrentTimeInMills(timemillis);
String formatTime = Dateformated(timemillis);
System.out.println(formatTime);
}
}
输出是这样的:
03-11-2013 01:58:00 PST
03-11-2013 01:59:00 PST
03-11-2013 02:00:00 PST
03-11-2013 02:01:00 PST
03-11-2013 02:02:00 PST
我的Java版本:1.6.0_16。这里Datformated()是用户定义的函数,以可读格式查看时间,setCurrentTime()也是用户定义的方法来设置当前时间。可以任何人帮助我,为什么在上午1:59:60时间成为2:00 AM据我所知,应该是1:00 AM呢?
什么是'DateUtil'和'Dateformat'? – assylias
你可以使用乔达时间吗?这是一个更好的图书馆... –
@assylias现在你可以再次检查我编辑的代码,以便更好地理解 – JackNeil