我想在Android中读取一个.vcs文件,它具有以下格式的时区值:
TZ:+05:30
现在我想获取与此值对应的时区名称。 意思是,在这种情况下,它将是Kolkata(印度)。
是否有在Android中实现此功能的代码?
TZ:+05:30
现在我想获取与此值对应的时区名称。 意思是,在这种情况下,它将是Kolkata(印度)。
是否有在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
和getDSTSavings
来查看目标偏移量是否为任何特定区域的标准或夏令时偏移量 - 尽管请注意,这些调用假定对于特定时区,夏令时偏移量和标准偏移量在历史上保持不变(这并不总是正确的)。getRawOffset
和observesDaylightTime
进行过滤。 - Jon Skeet