關于我
文章首發 | 我的博客 | 歡迎關注
go語言的time.Now()回傳的是當地時區時間
time.Now().Format("2006-01-02 15:04:05")
time設定自定義時區
var cstSh, _ = time.LoadLocation("Asia/Shanghai") //上海
fmt.Println("SH : ", time.Now().In(cstSh).Format("2006-01-02 15:04:05"))
LoadLocation 有個問題,它依賴于 IANA Time Zone Database (簡稱 tzdata 吧) 這個資料庫,一般linux系統都帶了,但是windows系統就沒帶,所以如果windows系統沒有安裝go環境,呼叫LoadLocation就會報錯,
當前解決方法也有:
1、我們可以自己把tzdata檔案放到自己的程式目錄中,然后讓 time 包能夠從我們自己的程式目錄中加載時區檔案就可以了,
檔案目錄可以通過環境變數設定,在main方法中:
os.Setenv("ZONEINFO", '/home/tz/data.zip')
然后再呼叫 LoadLocation 方法就可以了,
下載tzdata
2、使用時區方式 推薦方式
var cstZone = time.FixedZone("CST", 8*3600) // 東八區
fmt.Println("SH : ", time.Now().In(cstZone).Format("2006-01-02 15:04:05"))
全域設定
如果說要設定全域的time時區配置應該如何做?
main.go(主函式處)增加一個初始化方法
func initInMain() {
var cstZone = time.FixedZone("CST", 8*3600) // 東八
time.Local = cstZone
}
將定義的時區實體賦值給time.Local
推薦閱讀
Redis工具收費后新的開源已出現
GitHub上Star最高的工程師技能圖譜
中國程式員最容易發錯的單詞
推薦!!! Markdown圖示索引網站
最后
本文到此結束,希望對你有幫助 ??
如果還有什么疑問或者建議,可以多多交流,原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知,
更多精彩技術文章匯總在我的 公眾號【程式員工具集]】,持續更新,歡迎關注訂閱收藏
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/270585.html
標籤:Go
下一篇:開機自啟+延遲運行
