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-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 就可以了