【发布时间】:2013-07-20 03:24:33
【问题描述】:
我正在开发一个 ASP.NET 应用程序。
我想知道如何检查特定日期是否在澳大利亚的夏令时。
例如,我想检查12/12/2013 12:30PM 在澳大利亚是否处于夏令时。
【问题讨论】:
我正在开发一个 ASP.NET 应用程序。
我想知道如何检查特定日期是否在澳大利亚的夏令时。
例如,我想检查12/12/2013 12:30PM 在澳大利亚是否处于夏令时。
【问题讨论】:
您需要知道您所说的具体时区。澳大利亚有 5 个主要时区,在 TZDB 中有 13 个离散条目。你可以阅读更多here。
对于转换,请使用TimeZoneInfo 或Noda Time。
您还应该阅读timezone tag wiki。
如果您可以更具体一些,并显示您尝试过的代码,我将更新此答案并提供更详细的回复。
【讨论】:
Jon Skeet 的 NodaTime 库将 Tzdb 公开为 DateTimeZoneProviders 之一。
public void Test_NodaTime_IsDaylightSavingTime()
{
var ts = new DateTime(1980, 4, 15, 12, 0, 0);
var local = LocalDateTime.FromDateTime(ts);
var zdt = Utils.TzEast.ResolveLocal(local, Utils.CustomResolver);
Assert.IsFalse(zdt.IsDaylightSavingTime());
}
【讨论】: