2014-07-26 165 views
0

我有SimpleDateFormat。SimpleDateFormat返回1小时为什么?

Date vrcTime; 
SimpleDateFormat vrcCurrentTimeTextValue; 
vrcTime.setTime (0); 
vrcTimeFormat = new SimpleDateFormat ("HH:mm:ss"); 
vrcCurrentTimeTextValue = vrcTimeFormat.format (vrcTime); 

为什么我的SimpleDateFormat返回1小时,即使时间为0?

+0

在哪个时区? – Henry

+0

使用vrcTimeFormat.setTimeZone(TimeZone.getTimeZone( “GMT”)); vrcCurrentTimeTextValue = vrcTimeFormat.format(vrcTime); –

+0

欧洲中部时间(UTC +01:00) –

回答

1

你生活在一个GMT + 1时区,除非您指定一个不同的,格式化程序会选择你目前的一个,所以它认为0小时为格林尼治标准时间和你在GMT + 1,它输出1小时。 所以加

vrcTimeFormat.setTimeZone(TimeZone.getTimeZone("GMT")); 

即重写代码为

Date vrcTime; 
SimpleDateFormat vrcCurrentTimeTextValue; 
vrcTime.setTime (0); 
vrcTimeFormat = new SimpleDateFormat ("HH:mm:ss"); 
vrcTimeFormat.setTimeZone(TimeZone.getTimeZone("GMT")); 
vrcCurrentTimeTextValue = vrcTimeFormat.format (vrcTime); 
+0

非常感谢! –

+0

@ArturSiwek乐于助人,不要忘记接受。 –