使用C#将DateTime从UTC转换为用户提供的时区

ahm*_*md0 1 c# asp.net timezone datetime

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

And*_*ker 6

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

你可以使用ConvertTimeFromUtc:

TimeZoneInfo.ConvertTimeFromUtc(time, userTimeZone);
Run Code Online (Sandbox Code Playgroud)

或者TimeZoneInfo.ConvertTime:

TimeZoneInfo.ConvertTime(time, TimeZoneInfo.Utc, userTimeZone);
Run Code Online (Sandbox Code Playgroud)

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

在MSDN上的时区之间进行转换也许值得一读.它比你想象的要复杂得多.