time.LoadLocation("Turkey") 报告未知的时区Turkey
我在把代码部署到GCP App Engine标准Go环境。之前我使用Go 1.25部署后端,一切正常。更新到1.26.1时,在本地工作正常,但下面的代码却触发了panic。我在 Go Standard Environment的文档 中注意到,Go 1.26使用Ubuntu 24.04,而Go 1.25使用Ubuntu 22.04。也许这就是原因?
turkey, err := time.LoadLocation("Turkey")
if err != nil {
panic(err)
}
你看到发生了什么?
panic: unknown time zone Turkey
你期望看到什么?
不应该抛出panic,因为 zoneinfo.zip 包含 "Turkey"。
有人知道有什么解决方法或变通方案吗?
解决方案
尝试使用土耳其的规范IANA时区
loc, err := time.LoadLocation("Europe/Istanbul")
并且通过导入
import _ "time/tzdata"
你可以进行空导入,虽然没有直接从该包调用任何东西,但该包的 init() 函数会被调用且不会出错。通过这种方式,你可以使用内嵌的时区数据库,而不是依赖操作系统自带的时区数据库。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。