TimeZone tz = TimeZone.getTimeZone(TimeZoneString);
timeZoneOffsetms = tz.getRawOffset();
TimeZoneString 的值采用“GMT+02:00:00”格式
之前的代码在 2.2 - 4.1 中运行,没有问题。
现在,在 4.2 中,无论时区早于还是晚于 UTC,它始终返回等于 0 的偏移量。
任何想法或任何其他人都看到了这一点。
最佳答案
检查 TimeZone
的源代码后,4.2 中发生了重大变化。类(class)开始强制执行只需要几小时和几分钟的正则表达式。提供秒数将导致正则表达式模式匹配器失败,然后返回 null。
我这边的解决方案是检查我服务器上的值几秒钟,如果指定了则将其删除。由于我无法控制从服务器返回的值。
如果其他人遇到了这个问题,我希望这会有所帮助。
关于android - TimeZone.getRawOffset() 似乎不适用于 Android 4.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13569618/