【问题标题】:Daylight Time Zone conversion in C# asp.netC# asp.net 中的日光时区转换
【发布时间】:2011-08-15 08:59:09
【问题描述】:

如何使用 C# asp.net 检查特定时区是否属于“DAYLIGHTTIMEZONE”?

如果时区属于“DAYLIGHTTIMEZONE”,我应该将时间更改为标准时区吗?

我将从用户获取时区(Windows 操作系统中列出的时区)作为输入并将其存储在数据库中,每当用户登录时,我将根据用户选择的时区显示时间和日期。现在怎么办夏令时在这里扮演什么角色?如果特定时区属于“夏令时区”,是否应进行任何更改。

【问题讨论】:

标签: c# asp.net timezone


【解决方案1】:

使用 .NET 3.5 中引入的 TimeZoneInfo 类。

尚不清楚您的更大目标是什么,但基本上TimeZoneInfo 应该涵盖您正在尝试做的任何事情,例如从一个时区转换到另一个时区。正确使用它并不总是最简单的类,部分原因是DateTime 类型的开始设计很糟糕,不幸的是:(

我正在(偶尔!)为 .NET 开发一个名为 Noda Time 的新日期和时间库,但不幸的是,它还没有准备好 :(

编辑:好的,所以你的步骤应该是:

【讨论】:

  • @Jon 两个悲伤的表情在一个答案中?听起来有人需要一个拥抱。
  • 非常感谢 Skeet...我还有一个疑问,即使特定时区属于“DAYLIGHT TIMEZONE”,是否也可以遵循上述相同的步骤?
  • @Pranesh:TimeZoneInfo 为您整理了所有这些内容。
  • Skeet 考虑这种情况:特定时区属于“DAYLIGHT SAVING TIMEZONE”,例如:太平洋标准时间,因此 timezoneinfo.converttime 方法将根据“DAYLIGHT SAVING TIME”自动生成最终输出或者我应该手动处理日光时差吗?
  • @Pranesh:正如我保持所说:它为您完成了所有这些。就试一试吧! (顺便说一句,我不知道你为什么一直把夏令时全大写并引用它......)
【解决方案2】:

【讨论】:

  • 不是没有很多额外的努力 - 否则将代表 服务器的 时区。 TimeZone 已被有效地弃用,取而代之的是 TimeZoneInfo。
  • @Jon 为什么投反对票....我在 2.0 上查看...这个版本有什么更好的吗?
猜你喜欢
  • 2015-06-22
  • 2016-10-14
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多