【问题标题】:Android Time Zone IssueAndroid时区问题
【发布时间】:2015-05-20 22:46:37
【问题描述】:

我正在使用TimeZone 类获取SHORT 格式的时区,例如"PST", "EST" 等,使用TimeZone.getDefault().getDisplayName(false, TimeZone.SHORT, Locale.getDefault())

对于某些设备,这段代码返回 "PST" 等,但有些设备返回 "GMT+007" 值。任何人都知道我可以进行哪些更改以使其与"PST" 格式保持一致。

【问题讨论】:

  • 并非每个时区都有 3 个字母的缩写 - 特别是当您强制关闭 DST 时。这可能会导致它休息一个小时(在夏令时关闭的情况下调用时区 PST 是错误的,所以它不会这样做)。文档本身说“对这种风格的请求可能会产生像 GMT-08:00 这样的 GMT 偏移量。”
  • 正确的 GabeSechan。有什么办法可以让它保持一致。我的要求是以这些格式获取时间 HAST("US/Hawaii", "UTC-10:00"), PST("US/Pacific", "UTC-08:00")。因此,如果我能够获得 SHORT 形式也可以。

标签: android datetime timezone


【解决方案1】:

短名称是时区数据库的一部分。似乎某些设备正在发布不包含此信息的时区数据库,或者其库忽略了它。

为了保持一致,我将包含一个从长名称映射到短名称的映射。但是你必须自己维护它,并且你还需要为每个时区获取长名称(如“US/Hawaii”),我不知道这对你来说是否可行,这取决于用例。

还请注意,短时区名称是不明确的,例如有许多时区称为 EST。

【讨论】:

    猜你喜欢
    • 2013-03-05
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 2016-09-12
    相关资源
    最近更新 更多