在 Golang 中只比较日期部分 ot time.Time
Compare only date part ot time.Time in Golang
假设有以下两个日期。日期相同,但时间不同
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")
我会使用 Format()
来比较它们,但我不确定这是否是最好的方法,尤其是在不同时区的情况下。
if t1.Format("2006-01-02") == t2.Format("2006-01-02") {
// dates are equal, don't care about time.
}
这是一个好方法,还是我遗漏了什么?
您可以将时间截断为一天:
t1.Truncate(24*time.Hour).Equal(t2.Truncate(24*time.Hour))
或者你可以分别比较年和日:
t1.Year() == t2.Year() && t1.YearDay() == t2.YearDay()
假设有以下两个日期。日期相同,但时间不同
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")
我会使用 Format()
来比较它们,但我不确定这是否是最好的方法,尤其是在不同时区的情况下。
if t1.Format("2006-01-02") == t2.Format("2006-01-02") {
// dates are equal, don't care about time.
}
这是一个好方法,还是我遗漏了什么?
您可以将时间截断为一天:
t1.Truncate(24*time.Hour).Equal(t2.Truncate(24*time.Hour))
或者你可以分别比较年和日:
t1.Year() == t2.Year() && t1.YearDay() == t2.YearDay()