我有一個案例,我可以單獨擁有日期或日期+時區。因此,當我像這樣用時區解析它時dateString := "2021-03-11T00:00:00Z"time1, _ := time.Parse(time.RFC3339,dateString); fmt.Println(time1); 它給出了準確的答案,但當我動態地它變得像DatedateString := "2021-03-11"time1, _ := time.Parse(time.RFC3339,dateString); fmt.Println(time1); //gives this 0001-01-01 00:00:00 +0000 UTC而在這兩種情況下,我只想要像這樣的日期“2021-03-11”。實現此目標的最佳方法是什么
1 回答

慕森王
TA貢獻1777條經驗 獲得超3個贊
要僅解析日期,可以使用“2006-01-02”作為布局。time.Parse
請參閱官方文檔,了解這些布局的處理方式和預期內容。time.Parse
正如@zerkms在評論中所說的那樣,如果您檢查錯誤,您將知道它是否成功,因此您可以嘗試其他方法。粗略代碼草圖:time.Parse
dateString := "2021-03-11"
time1, err := time.Parse(time.RFC3339, dateString)
if err != nil {
time1, err = time.Parse("2006-01-02", dateString)
if err != nil {
log.Fatal("cannot parse using either layout:", err)
}
}
fmt.Println(time1)
在現實生活中,我可能會把它包裝在一個函數中,該函數在放棄并返回錯誤之前嘗試以兩種方式解析。
- 1 回答
- 0 關注
- 107 瀏覽
添加回答
舉報
0/150
提交
取消