如何将时区ID(例如America/New_York
)解析为UTC-5
或Europe/Helsinki
到UTC+2
?
如果将DST考虑在内,那就更好了(所以在之前的两个例子中,现在都有DST)。
我正在尝试将其解析为日期时间对象:
America/New_York:20130208T080000
字符串的最后一部分很简单,可以使用自定义日期格式或只是DateTime.parse()
进行解析,但我找不到解析时区ID的方法。
另外,我需要在服务器端执行此操作。我正在下载并解析iCal feed。
答案 0 :(得分:2)
您可以使用unix date命令:
import 'dart:io';
main() {
Process.run('date', ['+%z'], environment: {"TZ":":Europe/Helsinki"})
.then((e){
print(e.stdout); // display +0300
});
}
答案 1 :(得分:1)
参考:http://en.wikipedia.org/wiki/Tz_database,看起来(从一些有限的研究中),你可以从这里下载timezoneDB:http://timezonedb.com/download 以CSV或SQL格式。
我认为下一步可能是对Dart库进行代码生成,以便从CSV / SQL数据硬编码从名称到UTC的转换(或根据需要动态加载数据)。
答案 2 :(得分:0)
SDK中没有任何内容包含该信息,因此您需要将其导入自己的程序或使用可以解析它的外部程序,如前面的示例所示。