如何使用 C# asp.net 检查特定时区是否属于“DAYLIGHTTIMEZONE”?
如果时区属于“DAYLIGHTTIMEZONE”,我应该将时间更改为标准时区吗?
我将从用户输入获取时区(Windows 操作系统中列出的时区)并将其存储在数据库中,每当用户登录时,我将根据用户选择的时区显示时间和日期。现在怎么办夏令时在这里扮演什么角色?如果特定时区属于“DaylightsavingZone”,是否应进行任何更改。
最佳答案
使用 TimeZoneInfo
.NET 3.5 中引入的类。
不清楚您的更大目标是什么,但基本上 TimeZoneInfo
应该 涵盖您尝试做的任何事情,例如从一个时区转换到另一个时区。它并不总是最容易正确使用的类,部分原因是 DateTime
不幸的是,开始时类型设计得很糟糕:(
我正在(偶尔!)为 .NET 开发一个名为 Noda Time 的新日期和时间库, 但不幸的是,这还没有准备好:(
编辑:好的,所以您的步骤应该是:
- 找出如何以
TimeZoneInfo
的适当形式从用户那里获取时区。您最终会希望存储Id
在数据库中。 - 当你想显示时间时:
- 使用
FindSystemTimeZoneById
获取时区 - 使用
DateTimeOffset.UtcNow
获取当前时间 - 调用
TimeZoneInfo.ConvertTime
转换到目标时区 - 为用户适本地格式化结果
- 使用
关于c# - C# asp.net 中的夏令时区转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5830263/