gpt4 book ai didi

go - 函数中的秒操作

转载 作者:IT王子 更新时间:2023-10-29 02:02:55 26 4
gpt4 key购买 nike

我目前正在处理一个项目,我在返回调用的 startTime 的函数中遇到了问题。这是我的代码:

func (bt *Hc34) getStartDate(endTime time.Time, duration int) time.Time {
startTime := endTime
startTime.Second = endTime.Second - duration

return startTime
}

我得到这个错误:

beater/hc34.go:268: invalid operation: endTime.Second - duration (mismatched types func() int and int)
beater/hc34.go:268: cannot assign to startTime.Second

最佳答案

time.Time没有导出字段 Second,因此 startTime.Second 无效。

有一个Time.Add()您可以用来添加 time.Duration 的方法值到 time.Time 值。要从中减去持续时间,只需将您添加的值乘以 -1

func (bt *Hc34) getStartDate(endTime time.Time, duration int) time.Time {
return endTime.Add(time.Duration(-duration) * time.Second)
}

带有 getStartDate() 函数(不是方法)的示例:

now := time.Now()
fmt.Println(now)
fmt.Println(getStartDate(now, 60))

Go Playground 上的输出:

2009-11-10 23:00:00 +0000 UTC
2009-11-10 22:59:00 +0000 UTC

我还建议阅读有关使用由整数构造的 time.Duration 值的答案:Conversion of time.Duration type microseconds value to milliseconds

关于go - 函数中的秒操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45432924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com