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

Dan*_*rik 26 .net c# timezone internationalization

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

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

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

谢谢!

Ode*_*ded 43

您可以使用提供的Id TimeZoneInfo.FindSystemTimeZoneById来获取TimeZoneInfo对象,然后TimeZoneInfo.GetUtcOffset从中获取:

TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("US Eastern Standard Time");
TimeSpan offset = tzi.GetUtcOffset( myDateTime);
Run Code Online (Sandbox Code Playgroud)


Dea*_*ing 5

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

为什么时区采用“美国东部标准时间”格式?那个是从哪里来的?