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.Millisecond),
}
このアプローチは、UnixエポックとGoゼロ時間が整数ミリ秒異なるという事実に依存しています。