我想知道位置与UTC的偏移量何时会改变。我看到这些信息是由时间包知道的,很明显,否则它将无法计算夏令时。通过这种方式,我可以发现,对于地点"美国/纽约",夏令时从2018年3月11日星期日07:00 UTC开始。
除了制作自己的导出Location属性的时间包副本或为时区文件编写自己的解析器之外,还有什么方法可以做到这一点吗?
正如您在源代码中看到的,不,该信息没有公开。但是,您也可以从源代码中看到,用于生成时区的原始TZDB包含在Go分发中:
//go:generate env ZONEINFO=$GOROOT/lib/time/zoneinfo.zip go run genzabbrs.go -output zoneinfo_abbrs_windows.go
如果你查看$GOROOT/lib/time
,你会发现这个文件,它包含了用于生成时区列表的所有数据,你可以查看$GOROOT/src/time/genzabbrs.go
来了解它是如何使用的。