1

比如说,如果我有一个数据库列在 UTC 时区保存日期/时间,我可以将它们读入我用 C# 编写的 ASP.NET Web 应用程序中的 DateTime 对象中。如何将它们转换为用户提供的时区?

4

2 回答 2

6

这假设time有一个Kind = DateTimeKind.Utc

你可以使用ConvertTimeFromUtc

TimeZoneInfo.ConvertTimeFromUtc(time, userTimeZone);

或者TimeZoneInfo.ConvertTime

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

您可能需要查看TimeZoneInfo.ConvertTime有关该方法的详细信息的 MSDN 文章。

在 MSDN 上,关于时区转换的所有内容可能也值得一读。它比你想象的要复杂。

于 2012-07-24T02:59:36.597 回答
2

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

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

因为它是 ReadOnlyCollection 。现在您可以将此源与 DropDownCntrl 绑定。

于 2012-07-24T03:31:44.897 回答