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 № 1Uważ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)
}