我有一个来自数据库记录的 UTC 日期时间值。我还有一个用户指定的时区(TimeZoneInfo 的一个实例)。如何将该 UTC DateTime 转换为用户的本地时区?另外,如何确定用户指定的时区当前是否正在观察 DST?我正在使用 .NET 3.5。
谢谢, 标记
最佳答案
最好的方法就是使用 TimeZoneInfo.ConvertTimeFromUtc
.
// you said you had these already
DateTime utc = new DateTime(2014, 6, 4, 12, 34, 0);
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
// it's a simple one-liner
DateTime pacific = TimeZoneInfo.ConvertTimeFromUtc(utc, tzi);
唯一的问题是传入的 DateTime
值可能没有 DateTimeKind.Local
类型。它必须是 Utc
或 Unspecified
。
关于c# - 将 UTC 日期时间转换为另一个时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2548235/