我已经使用下面的代码来获取android移动时区显示名称。
String mobileTimeZone = Calendar.getInstance().getTimeZone()
.getDisplayName(false, TimeZone.SHORT);
但是在两个不同的设备中运行相同的代码会返回两个不同值,如下所示
在Sony xperia Z1中,它返回IST。
在三星Galaxy S3中,它返回GMT+05.30。
如何在所有设备中获得像IST或ET这样的唯一值。
请帮我解决这个问题。
我在我的华为手机(android 4.4.2)上看到了同样的GMT+5:30。
请注意,不赞成使用两个或三个字符的时区标识符。这是因为它们实际上并不是独一无二的。同一个值实际上可以表示不同的时区(例如,CST可以表示中央标准时间,也可以表示中国标准时间——有关更多信息,请参阅javadoc的时区)。
如果您需要时区的唯一标识符,请对时区类使用getID()方法。这将返回类似"亚洲/加尔各答"的值。该值可用于使用TimeZone.getTimeZone("亚洲/加尔各答").