1

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

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

据我了解,'IsFixed=false' 意味着我使用“StartDate”和“EndDate”字段......但是,我需要使用 DaylightTransitionStart 和 End 来动态确定时间是在白天时间还是不是。

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

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

请帮助我理解这一点......一旦我克服了这个障碍,我应该有一个完整的“在任何时间与 UTC 之间转换,所有历史的任何时区”SQL 函数编写。

4

5 回答 5

5

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

把它想象成一个循环链表。

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

于 2009-05-05T12:32:12.580 回答
4

赤道以南的国家不是这样吗?

于 2009-05-05T12:32:14.390 回答
3

有个东西叫南半球。也许你听说过。

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

于 2009-05-05T12:36:56.453 回答
2

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

于 2009-05-05T12:33:22.343 回答
1

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

于 2009-05-05T12:32:17.883 回答