Golang json轉換時間格式問題Golang json轉換時間格式問題
go 實際開發中 time.Time類型 提供是字符串, 而不少場景中須要對請求的接口再次處理,將go json化後的字符串轉成time.Time類型
go程序 將時間轉換成json 時 會默認把時間轉換爲RFC3339 格式json
2018-01-14T21:45:54+08:00ide
先來看看time包中對格式的常量定義code
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" )
切入正題
怎麼樣把這個時間orm
2018-01-14T21:45:54+08:00接口
轉換爲開發
2018-01-14 21:45:54字符串
其實琢磨了一下方法仍是很簡單it
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"))
就能夠獲得本身想要的時間了class
time.Parse()的layout參數 就是上面常量定義的 RFC3339
若是其餘格式 也只要複製對應的layout 就能夠了請求
tt.Format()
是將時間按照 自定義的方式 進行個格式化這裏的 2006-01-02 15:04:05 必定不能變