web-dev-qa-db-ja.com

日付部分のみを時間と比較します。

次の2つの日付を想定します。日付は同じですが、時間が異なります。

_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.
}
_

これは良いアプローチですか、それとも何か不足していますか?

17
Kiril

次のように時間を切り捨てることもできます。

t1.Truncate(24*time.Hour).Equal(t2.Truncate(24*time.Hour))

または、年と日を別々に比較することもできます。

t1.Year() == t2.Year() && t1.YearDay() == t2.YearDay()
32
JimB