一、docker 空镜像(或相似环境)docker
二、Go 应用中 使用了 loc, _ := time.LoadLocation("Asia/Chongqing")
数据库
$ go run ./xxx panic: time:missing Location in call to Time.In
时间的位置信息是从本地文件系统中提取的,大多数系统都支持它,但仍是取决于当前系统。具体的配置存储路径:code
$ cd /usr/share/zoneinfo
进入该目录就能够看到各时区的配置信息ci
$ ls +VERSION Australia EET Factory Greenwich Jamaica Mexico Poland US posixrules Africa Brazil EST GB HST Japan NZ Portugal UTC zone.tab America CET EST5EDT GB-Eire Hongkong Kwajalein NZ-CHAT ROC Universal Antarctica CST6CDT Egypt GMT Iceland Libya Navajo ROK W-SU Arctic Canada Eire GMT+0 Indian MET PRC Singapore WET Asia Chile Etc GMT-0 Iran MST PST8PDT Turkey Zulu Atlantic Cuba Europe GMT0 Israel MST7MDT Pacific UCT iso3166.tab
但在空镜像(或相似的场景)中就不存在这些时区配置文件,程序引用时就会出现这个报错io
(准确来讲,出现这个问题是由于本地系统不存在 Asia/Chongqing
的时区配置文件)软件
$ apk add --no-cache tzdata
安装这个包后,会在 /usr/share/zoneinfo
目录下生成各时区的配置信息配置
注意,若是没有 timezone 、locatime 的配置,须要手动处理一下rsa
你知道 tzdata 是什么吗?简单来说,它是时区数据库(做为文件和模块)引用
这个软件包的目的是将标准时区数据库分布在 cabal 软件包中,以便它能够在全部平台上统一用于 Haskell 程序程序