此代码在格式时间中生成时间。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 关注
- 147 浏览
添加回答
举报
0/150
提交
取消