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

Tim*_*uri 1 .net timezone dst

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

IsFixed = false;
DaylightTransitionStart.Month = 10;
DaylightTransitionEnd.Month = 1;
Run Code Online (Sandbox Code Playgroud)

根据我的理解,'IsFixed = false'意味着我使用"StartDate"和"EndDate"字段...而是,我需要使用DaylightTransitionStart和End来动态确定时间是在白天时间还是不.

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

DaylightSavingsTime如何 '2008年10月' 开始到2008年1月结束?

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

Ed *_*ess 5

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

可以把它想象成一个循环链表.

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