【问题标题】:How to get the timezone name from numeric timezone value in Android如何从Android中的数字时区值获取时区名称
【发布时间】:2012-08-03 05:55:46
【问题描述】:

我基本上是在尝试在 Android 中读取 .vcs 文件。它具有以下格式的时区值:

TZ:+05:30

现在我想得到这个值对应的时区名称。意味着在这种情况下它将是加尔各答(印度)。

在android中有实现这个的代码吗?

【问题讨论】:

    标签: timezone utc android-calendar vcalendar


    【解决方案1】:
            TimeZone tz = TimeZone.getTimeZone("GMT-06:00");
    
            String tzarr[] = TimeZone.getAvailableIDs(tz.getRawOffset());
            for(int i=0;i<tzarr.length;i++)
    

    【讨论】:

    • 它将给出与 GMT-6 相对应的所有值..意味着总共大约 6 个值。
    【解决方案2】:

    (我假设您可以轻松地将文本解析为偏移量。)

    一般来说,你不能。像“+05:30”这样的东西只是表示与 UTC在某个特定时间的偏移量。它没有表示偏移量在一年中(或跨历史)的时区内如何变化。例如,在某些时候,欧洲/伦敦时区与非洲/卡萨布兰卡时区的偏移量相同 - 但并非总是如此。

    假设这与特定日期/时间相关联,您可以使用 TimeZone.getAvailableIDs,遍历所有时区,检查在特定时刻与 UTC 的偏移量(使用 TimeZone.getOffset(long))并查看哪些时区在正确的时间有正确的偏移量。不过可能有很多这样的区域。

    如果您没有有具体的日期/时间,那就更加模糊了。您可以使用getRawOffsetgetDSTSavings 来查看目标偏移量是否是或者任何特定区域的标准 DST 偏移量 - 尽管请注意,这些调用假定对于在特定时区,DST 偏移量和标准偏移量在历史上保持不变(并非总是如此)。

    【讨论】:

    • 是的,这是特定于特定日期/时间的,我们假设偏移量不会改变。我们可以假设的意思是在一年中的时区内是相同的。
    • @user1423581: 哇 - 删掉了很多个时区。在这种情况下,您可以使用getRawOffsetobservesDaylightTime 进行过滤。
    猜你喜欢
    • 2021-04-11
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 2023-02-21
    • 2012-02-08
    • 2013-03-03
    • 2016-09-25
    相关资源
    最近更新 更多