go json返回時間字符串處理time.Time類型


參考博客 :golang 時間出現 -62135596800 問題(解決方案)golang 時間出現 -62135596800 問題(解決方案)
Golang json轉換時間格式問題Golang json轉換時間格式問題
go 實際開發中 time.Time類型 提供是字符串, 而很多場景中需要對請求的接口再次處理,將go json化后的字符串轉成time.Time類型
go程序 將時間轉換成json 時 會默認把時間轉換為RFC3339 格式

2018-01-14T21:45:54+08:00

先來看看time包中對格式的常量定義

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"
)

切入正題
怎么樣把這個時間

2018-01-14T21:45:54+08:00

轉換為

2018-01-14 21:45:54

其實琢磨了一下方法還是很簡單

str:="2018-01-14T21:45:54+08:00"
//先將時間轉換為字符串

tt,_:=time.Parse("2006-01-02T15:04:05Z07:00",str)

//格式化時間
fmt.Println(tt.Format("2006-01-02 15:04:05"))

就可以得到自己想要的時間了

time.Parse()的layout參數 就是上面常量定義的 RFC3339
如果其他格式 也只要復制對應的layout 就可以了

tt.Format()

是將時間按照 自定義的方式 進行個格式化
這里的 2006-01-02 15:04:05 一定不能變


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM