为了获取新加坡的时区偏移量,如果我尝试将“新加坡”作为 ID,我将得到正确的 ID,如下所示:
TimeZone timeZone = TimeZone.getTimeZone("Singapore");
int offset = timeZone.getRawOffset();//It prints 28800000 which is correct
但是如果像下面这样尝试用 SGT 代替新加坡,它将返回 GMT 的偏移量,因为它不理解 SGT 作为 id:
TimeZone timeZone = TimeZone.getTimeZone("SGT");
int offset = timeZone.getRawOffset();//It prints 0 which is incorrect and should be 28800000
有什么方法可以通过使用“SGT”代替“新加坡”来获得新加坡的正确偏移量????
上述问题不是为 ID“America/Los_Angeles”生成的。 “PST”和“America/Los_Angeles”返回相同的偏移量。
问候
已编辑--
如果我有像“2015-02-08 11:18 AM SGT”这样的日期,那么 ??????
我仍然无法使用上述日期获得“新加坡”的偏移量吗?
尝试了解如何实现。
最佳答案
如文档中所述,似乎并非所有三字母 ID 都受支持:
For compatibility with JDK 1.1.x, some other three-letter time zone IDs (such as "PST", "CTT", "AST") are also supported. However, their use is deprecated [...]
关于java- 从 ID 获取时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28385882/