有人可以解释DaylightSavingsRule在“EndMonth”之后如何拥有“StartMonth”吗?

时间:2009-05-05 12:28:42

标签: .net timezone dst

使用C#(.NET框架),我循环遍历所有TimeZones及其AdjustmentRules ......以及“毛里求斯标准时间”{(GMT + 04:00)Port Louis}} - 调整规则是如下:

IsFixed = false;
DaylightTransitionStart.Month = 10;
DaylightTransitionEnd.Month = 1;

根据我的理解,'IsFixed = false'表示我使用“StartDate”和“EndDate”字段......而是我需要使用DaylightTransitionStart和End to动态确定时间是否在白天时间。

问题在于,对于大约30个转换规则,“StartMonth”是在“EndMonth”之后

DaylightSavingsTime 如何在“2008年10月”开始并在“2008年1月”结束?

请帮助我理解这一点......一旦我越过这个障碍,我应该有一个完整的“转换到UTC的任何时间以及所有历史记录的任何时区”编写的SQL函数。

5 个答案:

答案 0 :(得分:5)

一段时间在开始之前不能在逻辑上结束,但也许你假设这些月份是指同年的几个月,而实际上OCT可能是在2008年但是JAN在2009年。

将其视为循环链接列表。

DaylightTime类在夏令时的开始和结束时使用DateTime,因此都指定了一年。

答案 1 :(得分:4)

赤道以南的国家不会出现这种情况吗?

答案 2 :(得分:3)

Theres这个东西叫做南半球。也许你已经听说过了。

在澳大利亚,夏令时从10月左右开始,到3月左右结束(在拥有它的州)。

答案 3 :(得分:2)

可能在南半球,DST从10月开始,在澳大利亚某些地区结束3月结束

答案 4 :(得分:1)

两年不同。 例如 09年开始 结束10年