在golang中使用json格式進行數據傳輸時,經常需要對時間進行處理。golang中提供了time標準庫,可以方便地操作時間:包括時間格式化、時間比較、時間計算等操作。
將時間轉換為json格式時,我們需要對時間進行格式化,時間格式化使用golang標準庫中的time.Format()函數。
//定義時間格式 const timeLayout = "2006-01-02 15:04:05" //定義時間結構體 type Person struct { Name string Age int Time time.Time } //創建數據 p := Person{ Name: "Jack", Age: 25, Time: time.Now(), } //將時間進行格式化 t := p.Time.Format(timeLayout) //將結構體轉換為json jsonBytes, err := json.Marshal(p) if err != nil { fmt.Println("json.Marshal error:", err) } //輸出json fmt.Println(string(jsonBytes))
當我們需要將json數據反序列化為結構體時,需要將json中的時間字段轉換為time類型。
//json格式數據 jsonStr := `{"Name":"Jack","Age":25,"Time":"2021-10-08 14:07:00"}` //定義結構體 type Person struct { Name string Age int Time time.Time } //將json數據轉換為結構體 var p Person err := json.Unmarshal([]byte(jsonStr), &p) if err != nil { fmt.Println("json.Unmarshal error:", err) } //輸出結構體 fmt.Println(p)
需要注意的是,當時間字符串不符合golang時間格式時,反序列化為時間會失敗,需要捕獲異常處理。另外,在處理時間類型時,我們還可以使用time標準庫中提供的其他函數進行比較、計算等操作。
上一篇python 捷豹 集合
下一篇python 換行怎么寫