关于asp.net:Convert DateTime从UTC到用户提供的带C#的时区

Convert DateTime from UTC to a user provided time zone with C#

例如,如果我有一个数据库列在UTC时区中保存日期/时间,那么我可以将它们读取到用C_编写的ASP.NET Web应用程序中的datetime对象中。如何将它们转换为用户提供的时区?


假设time有一个Kind = DateTimeKind.Utc

您可以使用ConvertTimeFromUtc

1
TimeZoneInfo.ConvertTimeFromUtc(time, userTimeZone);

TimeZoneInfo.ConvertTime

1
TimeZoneInfo.ConvertTime(time, TimeZoneInfo.Utc, userTimeZone);

您可能需要查看有关TimeZoneInfo.ConvertTime的msdn文章,了解该方法的输入和输出。

可能也值得阅读有关在msdn上转换时区的所有内容。这比你想象的要复杂。


要在系统中获取时区列表,可以使用timezoneinfo.getSystemTimeZones()。它将为您的系统提供所有可用时区的列表。

1
      List<TimeZoneInfo>  lstTZI = TimeZoneInfo.GetSystemTimeZones().ToList();

因为它是readOnlyCollection。现在您可以用DropDownCtrl绑定这个源。