一、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 程序程序