将日期时间转换为UNIX时间

时间:2017-08-07 14:58:43

标签: r unix time

我希望有人在这里知道发生了什么。我有这个奇怪的问题,当我试图将某些日期/时间转换为UNIX时,我得到负数,这里是我的代码供参考:

> foo <- '4/1/2017 00:02:23'
> alpha = as.POSIXct(foo)
> alpha
[1] "0004-01-20 LMT"
> beta = as.numeric(alpha)
> beta
[1] -62039347125 #Why?!?!?!

所以基本上,我经历了上面的结果并且我得到了一个负数,令人讨厌的是无论我使用的是什么日期/时间,我最终得到了相同的结果。日期/时间的格式是月/日/年小时:分钟:秒。

有谁知道发生了什么事?任何帮助将不胜感激,谢谢。

2 个答案:

答案 0 :(得分:1)

请注意,您使用的是第4年,也就是Unix时间开始前的1966年。你应该这样做:

foo <- '2017/4/1 00:02:23'
alpha = as.POSIXct(foo)
alpha

## "2017-04-01 00:02:23 EDT"

beta = as.numeric(alpha)
beta

## 1491019343

答案 1 :(得分:0)

我已经弄清楚了。您需要指定日期时间的格式..

所以:

> foo <- '4/1/2017 00:02:23'
> alpha = as.POSIXct(foo, format = '%m/%d/%Y %H:%M:%S')
> beta = as.numeric(alpha)
> beta
[1] 1491001343