time.LoadLocation("Turkey") 报告未知的时区Turkey

编程语言 2026-07-11

我在把代码部署到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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章