比较两个time.Time
对象以查看它们是否在同一日历日的最佳方法是什么?
我查看了使用t.Truncate()
,但它只能缩短到几小时。我知道我可以使用t.GetDate()
这很简单,但仍然需要比我认为必要的更多行代码。
答案 0 :(得分:8)
if a.Day() == b.Day() && a.Month() == b.Month() && a.Year() == b.Year() {
// same date
}
答案 1 :(得分:8)
通过对年,月和日进行单独的方法调用来解析日期组件的时间三次是低效的。对所有三个日期组件使用单个方法调用。从我的基准测试来看,它快了近三倍。例如,
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
}
答案 2 :(得分:1)
您也可以使用以下内容截断日期:
t.Truncate(time.Hour * 24)
答案 3 :(得分:0)
我会说这是一种更简单的方法,
import "time"
func DateEqual(date1, date2 time.Time) bool {
return date1.Format("20060102") == date2.Format("20060102")
}