【发布时间】:2014-02-08 19:04:12
【问题描述】:
我需要将“欧洲/俄罗斯”偏移到 UTC.. 以小时为单位。这是我的代码:
Calendar mCalendar = new GregorianCalendar();
mCalendar.setTimeZone( TimeZone.getTimeZone("Europe/Moscow"));
TimeZone mTimeZone = mCalendar.getTimeZone();
int remote_offset = mTimeZone.getRawOffset()/1000/60/60;
对于 UTC,它应该是 -4 小时。但!一些用户得到了 3 小时的时间差!!
我认为,问题在于,俄罗斯不使用冬季时间。现在有一些设备,但有些没有......我怎么能一直实现“-4”小时?
问候
【问题讨论】:
-
Europe/Russia 不是有效的时区标识符,至少在 IANA-tzdb 中不是。他们的命名方案是 {continent}/{exemplar-city}。
-
@MenoHochschild,你说得对,并不是俄罗斯的所有时区都是莫斯科。
-
@LoïcFaure-Lacroix 事实上,俄罗斯比莫斯科大得多。问题是 Java 使用无效标识符做什么,即只是映射到 GMT+00:00!
-
@user1908375 - 请不要重复发布相同的内容。如果您有更多内容要添加到your original question,您可以随时进行编辑。
-
对不起.. 在这里.. 我使用“欧洲/莫斯科”