Java 日历和时区。错误
日历使用相同的数据提供不同的值。 就是 在代码的不同部分给出了不同的值Java 日历和时区。错误,java,android,calendar,timezone,timezone-offset,Java,Android,Calendar,Timezone,Timezone Offset,日历使用相同的数据提供不同的值。 就是 在代码的不同部分给出了不同的值 \uuu.calc.ap.getTZ()和timezonebase是相同的,它们等于“欧洲/莫斯科” \uu.calc.ap.getCalMainTime()和curData.getTimeBase()的时间(毫秒)相同,等于568026000000L(1988年1月1日12:00 GMT+03:00) 结果相差一小时:(1988年1月1日12:00 GMT+03:00)或(1988年1月1日13:00 GMT+03:00
\uuu.calc.ap.getTZ()
和timezonebase是相同的,它们等于“欧洲/莫斯科”
\uu.calc.ap.getCalMainTime()
和curData.getTimeBase()
的时间(毫秒)相同,等于568026000000L
(1988年1月1日12:00 GMT+03:00
)
结果相差一小时:(1988年1月1日12:00 GMT+03:00
)或(1988年1月1日13:00 GMT+03:00
我想这个由俄罗斯引起的错误在两年前删除了DST。但是如何修复这个错误呢?我找到了一个丑陋的解决方案。可能会有更好的人。重新初始化日历 calT=Calendar.getInstance() 计算设置时区(.calc.ap.getTZ()); 计算setTimeInMillis(.calc.ap.getCalMainTime()) calT=Calendar.getInstance() 计算设置时区(时区基); 计算setTimeInMillis(curData.getTimeBase())
calT.setTimeZone(_.calc.ap.getTZ());
calT.setTimeInMillis(_.calc.ap.getCalMainTime());
calT.setTimeZone(timezonebase);
calT.setTimeInMillis(curData.getTimeBase());