检查两个时间对象是否在Go中的同一日期

Col*_*son 4 time date go

比较两个time.Time对象以查看它们是否在同一日历日的最佳方法是什么?

我看着使用,t.Truncate()但它只能截断几个小时.我知道我可以使用t.GetDate()哪个是直截了当的,但仍然需要比我认为必要的更多代码行.

pet*_*rSO 9

通过对年,月和日进行单独的方法调用来解析日期组件的时间三次是低效的.对所有三个日期组件使用单个方法调用.从我的基准测试来看,它快了近三倍.例如,

import "time"

func DateEqual(date1, date2 time.Time) bool {
    y1, m1, d1 := date1.Date()
    y2, m2, d2 := date2.Date()
    return y1 == y2 && m1 == m2 && d1 == d2
}
Run Code Online (Sandbox Code Playgroud)


thw*_*hwd 8

if a.Day() == b.Day() && a.Month() == b.Month() && a.Year() == b.Year() {
    // same date
}
Run Code Online (Sandbox Code Playgroud)