-1

我正在尝试测试time.Time我插入到 postgres 数据库中的值是否与我正在查询的值相同。虽然 Postgres 放弃了时区,所以我想知道如何让这个作证/断言测试通过?

s.Equal(want.Date, got.Date)

两者都是 dame 数据类型time.Time,但第一个具有时区:

2020-10-31 00:00:00 +0000 UTC

我像这样创建了这个值 -time.Date()必须获取一个位置,所以我无法通过传递 nil 来创建它:

want.Date := time.Date(2020, 10, 31, 00, 00, 00, 0000, time.UTC)

got.Date来自数据库的样子:

2020-10-31 00:00:00 +0000 +0000

我无法更改删除时区的数据库,那么如何更改创建日期的方式或如何删除时区?或者也许有另一种方法可以断言年、月和日是相同的?

4

1 回答 1

3

用于time.Time.Equal测试两个time.Time类型的值是否相等。

$ go doc time.Time.Equal
package time // import "time"

func (t Time) Equal(u Time) bool
    Equal reports whether t and u represent the same time instant. Two times can
    be equal even if they are in different locations. For example, 6:00 +0200
    and 4:00 UTC are Equal. See the documentation on the Time type for the
    pitfalls of using == with Time values; most code should use Equal instead.

于 2021-03-18T03:23:32.610 回答