date - 仅比较日期部分时间。Golang 中的时间

标签 date go comparison

假设以下两个日期。日期相同,但时间不同。

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()

关于date - 仅比较日期部分时间。Golang 中的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35042515/

相关文章:

php - 如何比较字符串中的版本号?

java - 在java中获取日期

go - protoc 生成值而不是指针(Go)

go - 如何使 LiteIDE 为 *big.Int(或您的类型)显示用户友好的监视字符串?

go - 用 omitempty 编码 sql.NullString

perl - 为什么 '<' 和 'lt' 运算符在 Perl 中返回不同的结果?

c# - System.Collections.Generic.Dictionary<T,T>.Equals 实际上做了什么?

java - 如何将 java.util.Date 转换为 java.sql.Date?

javascript - 使用过滤器以自定义格式设置日期格式

javascript - 你如何在javascript上放置一个可变日期?