在从Outlook接收iCal事件时,它以长格式指定时区:
DTSTART;TZID=Eastern Standard Time:20120521T180000
也就是说,你从TimeZone.getDisplayName()得到什么。
如何从那个(Eastern Standard Time
)转到TimeZone对象?
答案 0 :(得分:1)
嗯,它不漂亮,但这就是我最终的结果(基本上,迭代可用的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;
}
}
答案 1 :(得分:0)