我希望有人在这里知道发生了什么。我有这个奇怪的问题,当我试图将某些日期/时间转换为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?!?!?!
所以基本上,我经历了上面的结果并且我得到了一个负数,令人讨厌的是无论我使用的是什么日期/时间,我最终得到了相同的结果。日期/时间的格式是月/日/年小时:分钟:秒。
有谁知道发生了什么事?任何帮助将不胜感激,谢谢。
答案 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