BSON中的时间以自Unix纪元(spec)以来的UTC毫秒表示。Go中的时间值具有纳秒级精度。
为了往返时间,通过BSON编组的时间值,请使用自Unix时代以来截断为毫秒的时间:
func truncate(t time.Time) time.Time { return time.Unix(0, t.UnixNano()/1e6*1e6)}...u := user{ Username: "test_bson_username", Password: "1234", UserAccessibility: "normal", RegisterationTime: truncate(time.Now()), }您还可以使用Time.Truncate方法:
u := user{ Username: "test_bson_username", Password: "1234", UserAccessibility: "normal", RegisterationTime: time.Now().Truncate(time.Milliseconds),}这种方法依赖于Unix纪元和Go零时间相差整数毫秒的事实。



