日历和时区。错误

时间:2013-09-17 10:49:19

标签: java android calendar timezone timezone-offset

日历使用相同的数据提供不同的值。 也就是说,

calT.setTimeZone(_.calc.ap.getTZ());
calT.setTimeInMillis(_.calc.ap.getCalMainTime());

calT.setTimeZone(timezonebase);
calT.setTimeInMillis(curData.getTimeBase());

在代码的不同部分给出不同的值。

_.calc.ap.getTZ()和timezonebase相同,等于"Europe/Moscow" _.calc.ap.getCalMainTime()curData.getTimeBase()的时间(毫秒)相同且等于568026000000L1 Jan 1988 12:00 GMT+03:00

结果相差一小时:( 1 Jan 1988 12:00 GMT+03:00)或(1 Jan 1988 13:00 GMT+03:00

我认为两年前俄罗斯捣乱的这个虫子已经取消了夏令时。但是如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我发现了一个难看的解决方案。可能会有人发现更好。重新初始化日历。

  

calT = Calendar.getInstance();

     

calT.setTimeZone( .calc.ap.getTZ());   calT.setTimeInMillis( .calc.ap.getCalMainTime());

     

calT = Calendar.getInstance();

     

calT.setTimeZone(timezonebase);   calT.setTimeInMillis(curData.getTimeBase());