Časy v BSON jsou reprezentovány jako UTC milisekundy od epochy Unixu (spec ). Časové hodnoty v Go mají nanosekundovou přesnost.
Chcete-li zaokrouhlit čas cesty. Hodnoty času prostřednictvím řazení BSON použijte časy zkrácené na milisekundy od epochy Unixu:
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()),
}
Můžete také použít Time.Truncate metoda:
u := user{
Username: "test_bson_username",
Password: "1234",
UserAccessibility: "normal",
RegisterationTime: time.Now().Truncate(time.Millisecond),
}
Tento přístup se opírá o skutečnost, že epocha Unixu a nulový čas Go se liší o celý počet milisekund.