BSONDateTime
у MongoDB - це просто довге число, яке виглядає приблизно так:
BSONDateTime(1403950332121)
Як я можу це використати або перекласти його в читаний час?
Відповіді:
3 для відповіді № 1Я вважаю, що це епізодичні секунди як мілісекунди. Це кількість секунд з першої секунди 1 січня 1970 р. Отже, це кількість мілісекунд з 1 січня 1970 р. Вона заснована на UTC, зберігається як 64-бітове ціле число.
Ви можете використовувати команду дати Linux - Мій часовий пояс MST -7.
$ date --date "@1403950332"
Sat, Jun 28, 2014 4:12:12 AM
Я видалив останні три цифри (мілісекунди).
1 для відповіді № 2
Ось суть неявних перетворювачів, які я вважаю корисними: https://gist.github.com/ctcarrier/9918087
Це працює для мене. Можливо, вам потрібна одна незначна зміна: замість встановлення глобальної DateTimeZone.default, додайте аргумент до конструктора 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)
}