有一种
.Equal()比较日期的方法:
if !res.Equal(expect) { ...
引用文档:
请注意,Go
==运算符不仅会比较即时时间,还会比较“位置”和单调时钟读数。因此,在不首先确保已为所有值设置相同的“位置”(不可以通过使用UTC或“本地”方法实现)并且已将单调时钟读数剥离的情况下,不应将“时间”值用作映射或数据库键。设置t
= t.Round(0)通常,首选t.Equal(u)而不是t ==
u,因为t.Equal使用可用的最精确比较,并且仅当其参数之一具有单调时钟读数时才正确处理这种情况。
如果查看该
time.Time结构的代码,则可以看到该结构具有三个私有字段:
type Time struct { ... wall uint64 ext int64 ... loc *Location}
关于这些字段的注释清楚地表明,根据
Time构造的方式,两个
Time描述相同时间点的字段可能具有不同的值。
运行
res == expect比较这些内部字段的值,
运行
res.Equal(expect)尝试做您期望的事情。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)