如何查找 DST 直接转换时间

How to find DST Cutover time

提问人:ajay gandhi 提问时间:10/20/2023 最后编辑:kostixajay gandhi 更新时间:10/20/2023 访问量:41

问:

有没有简单的方法可以在给定的时间范围内找到特定时区(比如美国/New_York)的 DST 切换时间? 我知道我可以编写自定义逻辑来迭代每个小时,计算每个小时的偏移量,并将其与前一小时的偏移量进行比较。如果 offset 为 diff,则为 DST 直接转换时间 或者我可以使用 IANA 数据库

但我不想采用这些方法。我更感兴趣的是 Go 中是否有任何内置功能或任何提供此类功能的软件包。

DST

评论

0赞 kostix 10/20/2023
Go 确实在内部使用此信息(请参阅标准库文件中的类型和相关逻辑的字段),但它不会向常规客户端公开。不过,你可以看看它是如何实现的,并编写你自己的代码做同样的事情(或者如果你对它的许可条款感到满意,就复制代码并修改它)。txtime.Locationtime/zoneinfo.go
1赞 kostix 10/20/2023
当我们在做这件事时,这门语言被称为 Go。你不会说 JavaLang、PythonLang 等。
0赞 ajay gandhi 10/22/2023
是的。。我调查了那部分。Location 中有查找功能,Go 调用该功能来检查 DST 时间。但问题是它没有暴露。正如我所提到的,我不想重新发明轮子并编写相同的逻辑。我想检查某些软件包是否已经提供了此功能
0赞 kostix 10/23/2023
«我想检查某些软件包是否已经提供了此功能»–那么您的问题特别违反了SO规则
0赞 kostix 10/23/2023
...为了不听起来轻蔑,可以使用 SO 以外的场所提出开放式问题和引起自以为是的答案的问题;他们有很多

答:

-2赞 Amaan Ahmad 10/20/2023 #1

若要查找 DST 直接转换时间,可以使用以下步骤:

确定您所在的时区。 了解您的时区是否遵守夏令时 (DST)。 如果您的时区遵守 DST,请找出 DST 的开始和结束日期。 DST 转换时间是向前或向后设置时钟以观察 DST 的时间。 例如,在美国,大多数时区都遵守夏令时。DST 的开始日期是当地时间 3 月的第二个星期日凌晨 2:00。DST 的结束日期是当地时间 11 月的第一个星期日凌晨 2:00。

因此,美国的 DST 切换时间为:

春季前进:当地时间3月的第二个星期日凌晨2:00 回退:当地时间 11 月的第一个星期日凌晨 2:00 在印度,不遵守夏令时。因此,印度没有 DST 转换时间。