GetDayLightChanges from System.Timezone.CurrentTimeZone
本文关键字:CurrentTimeZone Timezone System from GetDayLightChanges | 更新日期: 2023-09-27 18:30:08
我对这个问题感到困惑。
我有一个控制台应用程序,它需要接受日光更改并将其放入DB中。
var daylight = System.TimeZone.CurrentTimeZone.GetDaylightChanges(dateofOffset.Year);
var start = daylight.Start.ToString();
var end = daylight.End.ToString();
如果我将机器上的时区设置为东部时间,则dayLight对象将具有有效日期,但如果我将计算机的时区切换到任何其他时区,则开始日期和结束日期的函数结果为1/1/0001。
我的应用程序在Windows7上运行。我正在通过窗口上"日期和时间"选项的"更改时区"来更改时区。
我是不是错过了一些显而易见的东西?
感谢
也许运行此方法将有助于澄清:
public void ListDSTAdjustmentRules()
{
var tz = TimeZoneInfo.GetSystemTimeZones();
foreach (var timeZoneInfo in tz)
{
var adjustments = timeZoneInfo.GetAdjustmentRules();
foreach (var adjustmentRule in adjustments)
{
Console.WriteLine(
"TimeZone: {0} SupportsDST: {1} DateStart: {2} DateEnd: {3} Delta: {4}",
timeZoneInfo.DisplayName, timeZoneInfo.SupportsDaylightSavingTime, adjustmentRule.DateStart,
adjustmentRule.DateEnd, adjustmentRule.DaylightDelta);
}
}
}
正如我在上面的评论中所提到的,如果一个时区不支持DST,那么GetDaylightChanges()将返回一个默认对象,其中值为DateTime.MinValue,Delta是一个带有0个刻度的TimeSpan。