Java/乔达 : Get TimeZone from long name (Display Name)

标签 java datetime formatting timezone icalendar

在从 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/

相关文章:

python - 如何用 pandas 中的特定值填充缺失值(日期和时间)

java - 如何检查列表中的日期是否是最新的

Java-获取n位小数

ruby - 以 Stackoverflow 信誉的样式显示数字

r - 如何从 R 面板数据框中删除具有唯一 ID 的行?

java - Spring,将字符串解析为 LocalDateTime

java - 选择什么技术来为 Eclipse RCP 和 Java Web 应用程序创建可重用组件?

java - 如何测试是否使用 javascript 加载了 java applet?

java - 图形生成器监听器中的 JMeter java.io.FileNotFoundException

php - 每天、每周、每月重置mysql表列