Go中time.RFC3339 時間格式化的實現(xiàn)
在開發(fā)過程中,我們有時會遇到這樣的問題,將 2020-11-08T08:18:46+08:00 轉成 2020-11-08 08:18:46,怎么解決這個問題?
解決這個問題,最好不要用字符串截取,或者說字符串截取是最笨的方法,這應該是時間格式化的問題。
我們先看一下 golang time 包中支持的 format 格式:
const ( ANSIC = "Mon Jan _2 15:04:05 2006" UnixDate = "Mon Jan _2 15:04:05 MST 2006" RubyDate = "Mon Jan 02 15:04:05 -0700 2006" RFC822 = "02 Jan 06 15:04 MST" RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone RFC850 = "Monday, 02-Jan-06 15:04:05 MST" RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST" RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone RFC3339 = "2006-01-02T15:04:05Z07:00" RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00" Kitchen = "3:04PM" // Handy time stamps. Stamp = "Jan _2 15:04:05" StampMilli = "Jan _2 15:04:05.000" StampMicro = "Jan _2 15:04:05.000000" StampNano = "Jan _2 15:04:05.000000000" )
我們找到了 RFC3339 ,那就很簡單了,我們封裝一個方法 RFC3339ToCSTLayout,見下面代碼。
package timeutil
import "time"
var (
cst *time.Location
)
// CSTLayout China Standard Time Layout
const CSTLayout = "2006-01-02 15:04:05"
func init() {
var err error
if cst, err = time.LoadLocation("Asia/Shanghai"); err != nil {
panic(err)
}
}
// RFC3339ToCSTLayout convert rfc3339 value to china standard time layout
func RFC3339ToCSTLayout(value string) (string, error) {
ts, err := time.Parse(time.RFC3339, value)
if err != nil {
return "", err
}
return ts.In(cst).Format(CSTLayout), nil
}
運行一下
RFC3339Str := "2020-11-08T08:18:46+08:00"
cst, err := timeutil.RFC3339ToCSTLayout(RFC3339Str)
if err != nil {
fmt.Println(err)
}
fmt.Println(cst)
輸出:
2020-11-08 08:18:46
小結
同理,若遇到 RFC3339Nano、RFC822、RFC1123 等格式,也可以使用類似的方法,只需要在 time.Parse() 中指定時間格式即可。
到此這篇關于Go中time.RFC3339 時間格式化的實現(xiàn)的文章就介紹到這了,更多相關Go time.RFC3339 時間格式化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Go?chassis云原生微服務開發(fā)框架應用編程實戰(zhàn)
這篇文章主要為大家介紹了Go?chassis云原生微服務開發(fā)框架應用編程實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
Golang實現(xiàn)for循環(huán)運行超時后自動退出的方法
for循環(huán)對大家來說應該都不陌生,對于golang來說更是必不可少,所以下面這篇文章就來給大家介紹了關于Golang如何實現(xiàn)for循環(huán)運行一段時間超時后自動退出的相關資料,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。2017-11-11
Golang應用執(zhí)行Shell命令實戰(zhàn)
本文主要介紹了Golang應用執(zhí)行Shell命令實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03

