.NET按时区名称获取时区偏移量

时间:2010-06-05 07:19:29

标签: c# .net timezone internationalization

在数据库中,我以UTC格式存储所有日期/时间。

我知道用户的时区名称(例如“美国东部标准时间”)。

为了显示正确的时间,我认为我需要将用户的时区偏移量添加到UTC日期/时间。但是如何通过时区名称来缩短时区?

谢谢!

3 个答案:

答案 0 :(得分:39)

您可以使用TimeZoneInfo.FindSystemTimeZoneById使用提供的ID获取TimeZoneInfo对象,然后使用TimeZoneInfo.GetUtcOffset

TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("US Eastern Standard Time");
TimeSpan offset = tzi.GetUtcOffset( myDateTime);

答案 1 :(得分:4)

您可以使用TimeZoneInfo课程的GetSystemTimeZones()方法获取服务器上配置的所有时区列表,并将其与您客户端的时区匹配。

虽然为什么你的时区有“美国东部标准时间”?这是从哪里来的?

答案 2 :(得分:2)

您应该利用ConvertTime的{​​{1}}方法,而不是进行一些手动添加,这种方法将根据您指定的TimeZone处理转换日期。

TimeZoneInfo