获取当前时区缩写 Android
Posted
技术标签:
【中文标题】获取当前时区缩写 Android【英文标题】:Get Current TimeZone Abbrevation Android 【发布时间】:2022-01-08 04:24:34 【问题描述】:是否有任何库可以让我在此列表中获得 android 的当前时区缩写:https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations
例如,我在土耳其,土耳其的时区缩写是 TRT,我想向用户显示它? 这是我目前使用的代码:
fun getTimeZoneAbbrevation():String
val id = TimeZone.getDefault().id
return ZoneId.of(id).getDisplayName(TextStyle.SHORT_STANDALONE, Locale.ENGLISH)
我从这个函数得到的结果是“Europe/Istanbul”,除了 TRT。
【问题讨论】:
也许你正在寻找这个:***.com/a/56183335/2827025 我尝试了这些解决方案,但对我不起作用:( 在这种情况下,添加您使用的代码以便其他人可以帮助您会有所帮助。 现在,我编辑了我的问题,谢谢 :)! 仅供参考,这些缩写是不是实时时区,不是标准化的,也不是唯一的!对于日期时间工作,请使用Continent/Region
格式的实时时区名称,例如Europe/Istanbul
。
【参考方案1】:
这应该可行:
val zone = ZonedDateTime.now(ZoneId.systemDefault()).zone
println(zone.getDisplayName(TextStyle.SHORT_STANDALONE, Locale.ENGLISH))
当我输入 Europe/Istanbul 我得到 TRT:
val zone = ZoneId.of("Europe/Istanbul")
println(zone.getDisplayName(TextStyle.SHORT_STANDALONE, Locale.ENGLISH))
如果代码无法在您的系统上运行,那就太奇怪了。
我已将默认时区更改为伊斯坦布尔,并且在运行第一个代码块时得到 TRT:
【讨论】:
谢谢。 如果代码不能在您的系统上运行,那就太奇怪了。 在那种情况下,情况就非常奇怪了。 OP 所做的似乎与您所做的实际上相同。短显示名称取自语言环境数据。桌面 Java 和 Android 以及 Java 版本之间的区域设置数据不同。 我们观察到了差异(如果要相信 OP,我不明白为什么在这种情况下不这样做)。我还在我的计算机上观察到 Java 8 和 Java 15 之间的差异(请参阅问题下的我的 cmets)。 @OleV.V.好的,谢谢你的评论。 感谢大家的回答!但在 Android 中,它仍然打印 Europe/Istanbul。但你是对的,在 IntelliJ 中它显示 TRT。我认为对于 Android 来说是不同的。 @AbdulsametKılınçarslan 有趣,你似乎是对的。以上是关于获取当前时区缩写 Android的主要内容,如果未能解决你的问题,请参考以下文章