【发布时间】:2012-07-24 02:55:52
【问题描述】:
假设我有一个数据库列,其中包含 UTC 时区的日期/时间,我可以将它们读入我用 C# 编写的 ASP.NET Web 应用程序中的 DateTime 对象中。如何将它们转换为用户提供的时区?
【问题讨论】:
标签: c# asp.net datetime timezone
假设我有一个数据库列,其中包含 UTC 时区的日期/时间,我可以将它们读入我用 C# 编写的 ASP.NET Web 应用程序中的 DateTime 对象中。如何将它们转换为用户提供的时区?
【问题讨论】:
标签: c# asp.net datetime timezone
这假设time 有一个Kind = DateTimeKind.Utc
你可以使用ConvertTimeFromUtc:
TimeZoneInfo.ConvertTimeFromUtc(time, userTimeZone);
TimeZoneInfo.ConvertTime(time, TimeZoneInfo.Utc, userTimeZone);
您可能需要查看 TimeZoneInfo.ConvertTime 上的 MSDN 文章,了解该方法的详细信息。
关于converting between time zones on MSDN 的所有内容可能也值得一读。它比您想象的要复杂。
【讨论】:
BaseUtcOffset.TotalHours 可能会起作用。
要在系统中获取时区列表,您可以使用 TimeZoneInfo.GetSystemTimeZones() 。它将 为您的系统提供所有可用时区的列表。
List<TimeZoneInfo> lstTZI = TimeZoneInfo.GetSystemTimeZones().ToList();
因为它是 ReadOnlyCollection 。现在您可以将此源与 DropDownCntrl 绑定。
【讨论】: