/ / Jak zrozumieć BSONDateTime w MongoDB? (Scala) - mongodb, scala, datetime, bson, reaktivemongo

Jak zrozumieć BSONDateTime w MongoDB? (Scala) - mongodb, scala, datetime, bson, reactivemongo

BSONDateTime w MongoDB jest po prostu długą liczbą, która wygląda następująco:

BSONDateTime(1403950332121)

Jak tego użyć lub przetłumaczyć na czytelną datę i godzinę?

Odpowiedzi:

3 dla odpowiedzi № 1

Uważam, że są to epokowe sekundy w milisekundach. Jest to liczba sekund od pierwszej sekundy 1 stycznia 1970 roku. Tak więc jest to liczba milisekund od 1 stycznia 1970 roku. Opiera się na UTC, przechowywanej jako 64-bitowa liczba całkowita.

Możesz użyć polecenia daty w Linuksie - Moja strefa czasowa to MST -7.

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

Usunąłem ostatnie trzy cyfry (milisekundy).


1 dla odpowiedzi nr 2

Oto lista ukrytych konwerterów, które uważam za pomocne: https://gist.github.com/ctcarrier/9918087

Mi to pasuje. Jedna drobna zmiana, którą możesz chcieć: zamiast ustawiać globalny DateTimeZone.default, dodaj argument do konstruktora DateTime:

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