2

像这样的基于城市的时区(或任何你称之为的)在 PHP 和 JavaAsia/ShanghaiAmerica/Los_Angeles被广泛使用,例如,

java.util.TimeZone.TimeZone timeZoneNewYork = java.util.TimeZone.TimeZone.getTimeZone("America/New_York");

据我所知,.Net 使用不同的键来获取相应的时区,因为America/New_York它是Eastern Standard Time

TimeZoneInfo timeZoneInfoNewYork = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");

如果我有一个基于城市的时区字符串,例如"America/New_York",如何将其转换为 .Net 中的正确时区,TimeZoneInfo{Eastern Standard Time}

4

1 回答 1

1

这些是 IANA/Olson 时区标识符,它们比 .Net 使用的 Windows 时区更通用。阅读时区标签 wiki的“时区数据库”部分。

在 .Net 中有几个库可用于处理这些库,但恕我直言,最好的库是Noda Time。有了这个库,你根本不需要使用TimeZoneInfo

更新

我在这里发布了转换函数

于 2013-06-09T19:25:03.420 回答