c# - 将 UTC 日期时间转换为另一个时区

标签 c# datetime timezone dst

我有一个来自数据库记录的 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 类型。它必须是 UtcUnspecified

关于c# - 将 UTC 日期时间转换为另一个时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2548235/

相关文章:

c# - WPF 转 jpg/gif/png/svg

c# - 如何将所有文件编译成一个exe?

datetime - 如何在 rails 3.0.1 中更改时间格式

Python 日期时间解析时区(RFC3339)

php - 服务器或客户端在发送/接收日期时应该处理时区吗?

azure - Azure Web 应用程序的不同时区

c# - Powershell 中的 DataTable.Rows.Find(MultiplePrimaryKey)

c# - 类中的方括号

Java API 用于获取一年中特定时区夏令时的开始和结束详细信息

ios - 如何从时间字符串获取时区