我使用下面的代码来获取android移动时区显示名称。
String mobileTimeZone = Calendar.getInstance().getTimeZone()
.getDisplayName(false, TimeZone.SHORT);
但是在两个不同的设备中运行相同的代码会返回两个不同的值,如下所示,
在Sony xperia Z1中,它返回 IST 。
在三星Galaxy S3中,它返回 GMT + 05.30 。
如何在所有设备中获取IST或ET等唯一值。
请帮我解决这个问题。
答案 0 :(得分:0)
我在华为手机上看到相同的GMT + 5:30(android 4.4.2)。
请注意,不推荐使用两个或三个字符的时区标识符。这是因为它们实际上并不是唯一的。相同的值实际上可以表示不同的时区(例如,CST可以表示中央标准时间以及中国标准时间 - 有关更多信息,请参阅时区的javadoc)。
如果需要时区的唯一标识符,请在Timezone类上使用getID()方法。这将返回“亚洲/加尔各答”之类的值。可以使用相同的值来使用TimeZone.getTimeZone(“Asia / Kolkata”)构造TimeZone。