我基本上是在尝试在 Android 中读取 .vcs 文件。它具有以下格式的时区值:
时间:+05:30
现在我想获取与该值对应的时区名称。意味着在这种情况下它将是加尔各答(印度)。
在android中是否有任何代码可以实现这一点?
我基本上是在尝试在 Android 中读取 .vcs 文件。它具有以下格式的时区值:
时间:+05:30
现在我想获取与该值对应的时区名称。意味着在这种情况下它将是加尔各答(印度)。
在android中是否有任何代码可以实现这一点?
TimeZone tz = TimeZone.getTimeZone("GMT-06:00");
String tzarr[] = TimeZone.getAvailableIDs(tz.getRawOffset());
for(int i=0;i<tzarr.length;i++)
(我假设您可以轻松地将文本解析为偏移量。)
一般来说,你不能。像 "+05:30" 这样的东西只是表示在某个特定时间与 UTC 的偏移量。它没有表示偏移量在一年中(或跨历史)的时区内如何变化。例如,在某些时候,欧洲/伦敦时区与非洲/卡萨布兰卡时区具有相同的偏移量 - 但并非总是如此。
假设这与特定日期/时间相关联,您可以使用TimeZone.getAvailableIDs
,遍历所有时区,检查该特定时刻与 UTC 的偏移量(使用TimeZone.getOffset(long)
)并查看哪些时区在正确的时间具有正确的偏移量。不过可能有很多这样的区域。
如果您没有特定的日期/时间,则更加模糊。您可以使用getRawOffset
andgetDSTSavings
查看目标偏移量是任何特定区域的标准偏移量还是DST 偏移量 - 尽管请注意,这些调用假定对于特定时区,DST 偏移量和标准偏移量在历史记录中保持相同(这不是t 总是正确的)。