Tider i BSON representeras som UTC millisekunder sedan Unix-epoken (spec ). Tidsvärden i Go har nanosekunders precision.
Till tur och returtid. Tidsvärden genom BSON-rangering, använd tider trunkerade till millisekunder sedan Unix-epoken:
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()),
}
Du kan också använda Time.Truncate metod:
u := user{
Username: "test_bson_username",
Password: "1234",
UserAccessibility: "normal",
RegisterationTime: time.Now().Truncate(time.Millisecond),
}
Detta tillvägagångssätt bygger på det faktum att Unix-epok och Go nolltid skiljer sig med ett helt antal millisekunder.