如何理解MongoDB中的BSONDateTime? (斯卡拉)

时间:2014-12-23 16:29:55

标签: mongodb scala datetime bson reactivemongo

MongoDB中的

BSONDateTime只是一个很长的数字,如下所示:

BSONDateTime(1403950332121)

我如何使用它,或将其翻译成可读的日期时间?

2 个答案:

答案 0 :(得分:3)

我相信它是以毫秒为单位的纪元秒。这是自1970年1月1日第一秒以来的秒数。因此,这是自1970年1月1日以来的毫秒数。它基于UTC,存储为64位整数。

您可以使用Linux date命令 - 我的时区是MST -7。

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

我删除了最后三位数字(毫秒)。

答案 1 :(得分:1)

这里有一个我发现有用的隐式转换器的要点: https://gist.github.com/ctcarrier/9918087

它对我有用。 您可能需要的一个小改动:不是设置全局DateTimeZone.default,而是向DateTime构造函数添加一个arg:

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