Golang中如何将年度例行任务改为按日期执行
Golang中如何将年度例行任务改为按日期执行 这段代码目前检查任务的“年份”是否在当前“年份”的未来。有人能帮我修改一下,让它检查任务的“日期”是否在当前“日期”的未来吗?我猜需要修改‘year’部分,但不确定具体改为什么(应该不像直接改成‘data’那么简单吧,哈哈!)
var currentDateTime = time.Now()
taskExpirationDate, _ := time.Parse("2009-01-02", tokens[4])
if taskExpirationDate.Year() > currentDateTime.Year() {
return TaskResponseRegistered
}
return TaskResponsePending
更多关于Golang中如何将年度例行任务改为按日期执行的实战教程也可以访问 https://www.itying.com/category-94-b0.html
8 回复
每天我都能从这个小组学到更多东西!!! 我之前不知道有这个函数。 谢谢!!!
谢谢,不过遗憾的是,我不知道如何在不做太多改动的情况下将那个方法集成到我现有的代码中。如有任何指点,将不胜感激。
您可以将其修改为类似以下形式:
var currentDateTime = time.Now()
taskExpirationDate, _ := time.Parse("2006-01-02", tokens[4])
if taskExpirationDate.After(currentDateTime) {
return TaskResponseRegistered
}
return TaskResponsePending
要改为按日期比较而不是按年份比较,可以直接使用 After 方法或比较时间戳。以下是修改后的代码:
var currentDateTime = time.Now()
taskExpirationDate, _ := time.Parse("2006-01-02", tokens[4])
if taskExpirationDate.After(currentDateTime) {
return TaskResponseRegistered
}
return TaskResponsePending
或者使用时间戳比较:
var currentDateTime = time.Now()
taskExpirationDate, _ := time.Parse("2006-01-02", tokens[4])
if taskExpirationDate.Unix() > currentDateTime.Unix() {
return TaskResponseRegistered
}
return TaskResponsePending
注意:原代码中的时间格式字符串有误,已从 "2009-01-02" 修正为 "2006-01-02",这是 Go 语言中表示年-月-日格式的正确写法。


