【问题标题】:Converting Date-Time to UNIX Time将日期时间转换为 UNIX 时间
【发布时间】:2017-08-07 14:58:43
【问题描述】:

我希望这里有人知道发生了什么。我遇到了一个奇怪的问题,当我尝试将某些日期/时间转换为 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?!?!?!

所以基本上,我经过上述操作,最终得到一个负数,令人讨厌的是,无论我使用什么日期/时间,我最终都会得到相同的结果。日期/时间的格式为月/日/年时:分:秒。

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

【问题讨论】:

    标签: r unix time


    【解决方案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
    

    【讨论】:

    • 谢谢,但我真的无法更改格式,但没关系,我找到了解决我的问题的“格式”参数(请参阅我的答案)。谢谢!!
    • 好!我打算编辑我​​的帖子来告诉你format。很高兴你明白了。
    【解决方案2】:

    我想通了。您需要指定日期时间的格式..

    所以:

    > 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
    

    【讨论】:

      猜你喜欢
      • 2014-05-06
      • 2015-02-09
      • 1970-01-01
      • 2015-01-07
      • 2015-09-26
      • 2014-08-01
      • 2020-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多