Golang 字符串轉(zhuǎn)time類型實現(xiàn)
前言
由于數(shù)據(jù)庫的類型為Data 類型,所以插入數(shù)據(jù)庫的時候我先把前端傳入的string類型的時間轉(zhuǎn)為Time 再插入。
Go 提供了兩種插入的方式,即time.Parse 和 time.ParseInLocation 。兩種方式,他們的差異比較大。

可以看出兩種方式轉(zhuǎn)換后的時間 相差了 8個小時,這是因為時區(qū)的原因。
- time.Parse 把時間字符串轉(zhuǎn)為了Time,時區(qū)是UTC時區(qū)
- time.ParseInLocation 可以根據(jù)時間字符串和指定的時區(qū)轉(zhuǎn)化
而CST時區(qū)則是東八區(qū)(北京時間) 和 UTC(世界標準時間)相差8個小時
這個看情況去選定時區(qū)。
時區(qū)
整個地球分為二十四時區(qū),每個時區(qū)都有自己的本地時間。在國際無線電通信場合,為了統(tǒng)一起見,使用一個統(tǒng)一的時間,稱為通用協(xié)調(diào)時(UTC, Universal Time Coordinated)。UTC與格林尼治平均時(GMT, Greenwich Mean Time)一樣,都與英國倫敦的本地時相同。在本文中,UTC與GMT含義完全相同。
北京時區(qū)(CST)是東八區(qū),領先UTC八個小時
使用
// 支持什么類型都可以自己加
var timeTemplates = []string{
?? ?//"2006-01-02 15:04:05", //常規(guī)類型
?? ?//"2006/01/02 15:04:05",
?? ?"2006-01-02",
?? ?//"2006/01/02",
}
func TimeStringToGoTime(tm string) time.Time {
?? ?for i := range timeTemplates {
?? ??? ?t, err := time.ParseInLocation(timeTemplates[i], tm, time.Local)
?? ??? ?if nil == err && !t.IsZero() { return t }
?? ?}
?? ?return time.Time{}
}到此這篇關于Golang 字符串轉(zhuǎn)time類型實現(xiàn)的文章就介紹到這了,更多相關Golang 字符串轉(zhuǎn)time類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
go?goroutine實現(xiàn)素數(shù)統(tǒng)計的示例
這篇文章主要介紹了go?goroutine實現(xiàn)素數(shù)統(tǒng)計,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07

