此代碼在格式時間中生成時間。RFC3339 在找到 24 時將小時更改為 00:00,然后應該增加日期,但是這不會發生。請分享想法:)package main import ( "fmt" "strings" "time")var dConv time.Time //contains converted timevar timeErr errorfunc main() { dateTime := "2020-01-01" + "T" + "24:00" + ":00Z" if strings.Contains(dateTime, "T24") { dateTime = strings.Replace(dateTime, "T24", "T00", 1) dConv, timeErr = time.Parse(time.RFC3339, dateTime) h := dConv if timeErr == nil { fmt.Println(h) h.AddDate(0, 0, 1) fmt.Println(h) } }}
1 回答

POPMUISE
TA貢獻1765條經驗 獲得超5個贊
該time.Add()方法不會修改接收器時間,它不能因為它不是指針接收器。相反,它會返回time.Time您未分配給任何內容的結果,因此將其丟棄。
如果將其分配回h,您將看到結果增加了一天:
h = h.AddDate(0, 0, 1)
有了這個更改輸出將是(在Go Playground上嘗試):
2020-01-01 00:00:00 +0000 UTC
2020-01-02 00:00:00 +0000 UTC
- 1 回答
- 0 關注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消