【发布时间】:2010-11-06 19:47:31
【问题描述】:
我有一个 Java 类,它接受一个位置的纬度/经度,并在夏令时打开和关闭时返回 GMT 偏移量。我正在寻找一种简单的方法来确定当前日期是否在夏令时,以便在 Java 中应用正确的偏移量。目前我只对美国时区执行此计算,但最终我也想将其扩展到全球时区。
【问题讨论】:
-
目前我正在使用 GeoTools 库和美国国家地图集 (nationalatlas.gov/mld/timeznp.html) 提供的 shapefile 检索时区信息。幸运的是,这为我提供了一些额外的信息——主要是 2 位或 4 位数字的时区符号(即 AL、EA、EAno 等)。不幸的是,这个值与 Java 时区使用的值不对应,尽管我可以手动执行这个映射。理想情况下,如果我用世界时区 shapefile 替换此文件,我想要一个可行的解决方案,但这可能过于雄心勃勃。
-
timeznp020.txt 列出了
Enumerated_Domains,其中包括使用的每个缩写的详细信息;将它们映射到 zoneinfo 时区名称应该不会太难。我不确定 Java 中的时区名称是否是跨平台的,但我希望如此! -
另一个对这个问题有用的答案stackoverflow.com/a/1449510/311525
标签: java dst datetimeoffset