android - TimeZone.getRawOffset() 似乎不适用于 Android 4.2

标签 android timezone

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/

相关文章:

C++ - 如何获取特定时区的日期

postgresql - 如何为 Postgres psql 设置时区?

ios - 在项目中全局更改 FSCalendar 的时区

java - 显示时区 SQL 命令的 JDBC 替代方法

android - 使用不受支持的Gradle版本

android - 如何在 Activity 中显示充电器是否已插入/拔出?

android - 了解数据流和多个订阅者(使用改造)

java - Maven 使用与系统不同的时区

android - Paint 实例从未在自定义 ViewGroup 构造函数中初始化

android - onSaveInstanceState() 和 onRestoreInstanceState(Parcelable state) 没有被调用?