比较Golang中的日期部分ot time.Time

Kir*_*ril 15 comparison date go

假设以下两个日期.日期是一样的,但时间不同.

t1, _ := time.Parse("2006-01-02 15:04:05", "2016-01-01 12:12:12.0")
t2, _ := time.Parse("2006-01-02 15:04:05", "2016-01-01 18:19:20.0")
Run Code Online (Sandbox Code Playgroud)

我会用它来比较它们Format(),但我不确定这是否是最好的方式,特别是当不同的时区在起作用时.

if t1.Format("2006-01-02") == t2.Format("2006-01-02") {
    // dates are equal, don't care about time.
}
Run Code Online (Sandbox Code Playgroud)

这是一个好方法,还是我错过了什么?

Jim*_*imB 29

您可以截断当天的时间:

t1.Truncate(24*time.Hour).Equal(t2.Truncate(24*time.Hour))
Run Code Online (Sandbox Code Playgroud)

或者您可以分别比较年份和日期:

t1.Year() == t2.Year() && t1.YearDay() == t2.YearDay()
Run Code Online (Sandbox Code Playgroud)