/ / Wie verstehe ich BSONDateTime in MongoDB? (Scala) - Mongodb, Scala, Datetime, Bson, Reactivemongo

Wie kann man BSONDateTime in MongoDB verstehen? (Scala) - mongodb, scala, datetime, bson, reactivemongo

BSONDateTime in MongoDB ist nur eine lange Zahl, die so aussieht:

BSONDateTime(1403950332121)

Wie verwende ich das oder übersetze ich es in eine lesbare Datums- und Uhrzeitangabe?

Antworten:

3 für die Antwort № 1

Ich glaube, es sind Epochensekunden als Millisekunden. Dies ist die Anzahl der Sekunden seit der ersten Sekunde des 1. Januar 1970. Dies ist also die Anzahl der Millisekunden seit dem 1. Januar 1970. Sie basiert auf UTC und wird als 64-Bit-Ganzzahl gespeichert.

Sie können den Linux-Datumsbefehl verwenden. Meine Zeitzone ist MST -7.

$ date --date "@1403950332"
Sat, Jun 28, 2014  4:12:12 AM

Ich habe die letzten drei Ziffern (die Millisekunden) entfernt.


1 für die Antwort № 2

Hier ist ein Überblick über die impliziten Konverter, die ich hilfreich fand: https://gist.github.com/ctcarrier/9918087

Für mich geht das. Eine geringfügige Änderung, die Sie möglicherweise wünschen: Anstatt die globale DateTimeZone.default festzulegen, fügen Sie dem DateTime-Konstruktor ein Argument hinzu:

implicit object BSONDateTimeHandler extends BSONHandler[BSONDateTime, DateTime] {
def read(time: BSONDateTime) = new DateTime(time.value, DateTimeZone.UTC)
def write(jdtime: DateTime) = BSONDateTime(jdtime.getMillis)
}