什么是使用golang AddDate计算日期的正确方法

时间:2018-11-01 01:26:06

标签: go

今天是2018-11-1,我使用AddDate来计算7天: startTime:= time.Now()。AddDate(0,0,-7).Unix(),但2018-10-25仍然存在。使用AddDate方法计算日期的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

  

Package time

import "time"
     

func (Time) AddDate

func (t Time) AddDate(years int, months int, days int) Time
     

AddDate返回对应于添加给定数量的时间的时间   t的年,月和日。例如,应用了AddDate(-1,2,3)   到2011年1月1日返回2010年3月4日。

     

AddDate以与Date相同的方式标准化其结果,因此,对于   例如,在10月31日加上一个月,则12月1日将产生   规范化形式为11月31日。


startTime := time.Now().AddDate(0, 0, -7)计算减去7(-7)天或7天之前的时间。

例如,

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println(time.Now().Round(0))
    startTime := time.Now().AddDate(0, 0, -7)
    fmt.Println(startTime)
}

输出(目前在美国东部时间2018年10月31日21:30:40):

2018-10-31 21:30:40.977401051 -0400 EDT
2018-10-24 21:30:40.977510166 -0400 EDT

在您所在的时区,当前时间是2018-11-01,所以减去7(-7)天或7天前的时间是2018-10-25。


注意:有两种计算天数的方法。对于年龄,今天您比昨天大一天。为了获得报酬,昨天和今天工作是两天工资。

相关问题