为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 time.Add 方法不适用于 time.Time 格式为 time.RFC3339

为什么 time.Add 方法不适用于 time.Time 格式为 time.RFC3339

Go
慕桂英546537 2022-06-21 16:16:27
此代码在格式时间中生成时间。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


查看完整回答
反对 回复 2022-06-21
  • 1 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号