在不知道原点的情况下将日期设置为posixct

Emm*_*bbs 0 r

我有一个以下列格式提供的日期时间:

ex <-2008123118
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其转换为日期时间格式.我尝试:

mytime2 <- as.POSIXct(ex, format = "%Y%m%d%H")
Run Code Online (Sandbox Code Playgroud)

但收到错误:

Error in as.POSIXct.numeric(ex, format = "%Y%m%d%H") : 
  'origin' must be supplied
Run Code Online (Sandbox Code Playgroud)

错误似乎是直截了当的,但唯一的问题是,如果我不知道原点.例如,我的代码的这部分将进入一个更大的代码,将处理大量的文件.

我希望我的例子能够回归:

2008-12-31 18:00
Run Code Online (Sandbox Code Playgroud)

那可能吗?

42-*_*42- 5

有两个版本as.POSIXct的幕后工作,as.POSIXct.numeric并且as.POSIXct.character,你已经试过一次打电话给他们两个.因为该值以"数字"形式传入,所以它传递给as.POSIXct.numeric了这里实际上是错误的原因,因为as.POSIXct.numeric没有类似日期值的检测算法,也没有"格式"参数.强迫它"性格,一切都很好:

> ex <-2008123118
> mytime2 <- as.POSIXct(as.character(ex), format = "%Y%m%d%H")
> mytime2
[1] "2008-12-31 18:00:00 PST"
Run Code Online (Sandbox Code Playgroud)