0

我试图将 MongoDB 日期转换为 R 日期对象。我用

library(RMongo)
library(data.table)

mongo<-mongoDbConnect("test", host = "127.0.0.1", port = "27017")
event<-dbGetQuery(mongo, "event", "", 0, 1000)
data<-as.data.table(event)

date<-data$date 返回向量:

[1] "Fri Oct 28 13:15:00 CEST 2016" "Fri Oct 28 16:00:00 CEST 2016" "Fri Nov 04 18:30:00 CET 2016"  "Fri Nov 04 18:45:00 CET 2016" 

我无法转换此向量。我尝试了以下代码:

as.Date(date, format = "%a %b %d %H:%M:%S %Y")
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

strptime(date, format = "%a %b %d %H:%M:%S %Y")
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

我也尝试使用修改格式

s.POSIXct(date, "%a %b %d %H:%M:%S %Z %Y")
Error in as.POSIXct.default(date, "%a %b %d %H:%M:%S %Z %Y")

有人可以解释一下我如何做到这一点,并解释我做错了什么..

提前谢谢了

4

1 回答 1

0

我遇到了同样的问题,我找到了两种可能的解决方案:

  1. 您可以使用库 mongolite 而不是 RMongo,它为您提供格式为“2016-01-01 01:00:00”的日期。您只需格式化它们,例如调用format(yourTime, "%Y-%m-%d %H:%M:%OS3")以恢复毫秒。
  2. 使用这两个库,您可以使用聚合框架并在项目阶段将您的日期转换为字符串,例如像这样:"$dateToString": { "format": "%Y-%m-%d %H:%M:%S.%L", "date": "$yourTime" },然后像之前的情况一样再次格式化它们。

我希望它有所帮助。

告别

于 2017-06-15T17:25:15.453 回答