在从 Outlook 接收 iCal 事件时,它以长格式指定时区:
DTSTART;TZID=Eastern Standard Time:20120521T180000
也就是说,您将从 TimeZone.getDisplayName() 获得什么。
如何从那个(东部标准时间
)转到 TimeZone 对象?
最佳答案
嗯,它并不漂亮,但这是我最终得到的结果(基本上,迭代可用的 TZ,搜索 getDisplayName()
匹配项):
//注意:vTZID 是 iCalendar 格式显示的时区 ID //例如“东部标准时间”。我只在无法通过正常方法找到 TZ 时才这样做 //(即 TimeZone.getTimeZone())
boolean foundTZ=false;
for (String availId : TimeZone.getAvailableIDs()){
if (vTZID.trim().equalsIgnoreCase(TimeZone.getTimeZone(availId).getDisplayName())){
vTimezone = TimeZone.getTimeZone(availId);
foundTZ = true;
break;
}
}
关于Java/乔达 : Get TimeZone from long name (Display Name),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10693741/