首页 文章

在R中将数字时间转换为日期时间POSIXct格式

提问于
浏览
2

我有一个数据框,其中包含应该读入R的日期时间列 . 时间值显示为数字时间,如下面的数据示例所示 . 我想将它们转换为日期时间POSIXct或POSIXlt格式,以便可以查看日期和时间 .

tdat <- c(974424L, 974430L, 974436L, 974442L, 974448L, 974454L, 974460L, 974466L, 974472L,
          974478L, 974484L, 974490L, 974496L, 974502L, 974508L, 974514L, 974520L, 974526L,
          974532L,974538L)

974424 应该等于 00:00:00 01/03/2011 ,但是不知道数值的起源时间(即下面使用的1970-01-01不起作用) . 我已经尝试使用如下所示的命令来实现这一点,并且花了很多时间试图让 as.POXISct 工作,但是我还没有找到解决方案(即我最终得到了一个NA的POSIXct对象,或者最终得到了模糊的日期时间值) .

尝试将数字时间转换为日期时间:

datetime <- as.POSIXct(strptime(time, format = "%d/%m/%Y %H:%M:%S"))
datetime <- as.POSIXct(as.numeric(time), origin='1970-01-01')

我确信这是一件简单的事情 . 任何帮助都会受到极大的欢迎 . 谢谢!

1 回答

  • 4

    根据您想要的时区尝试其中一种:

    t.gmt <- as.POSIXct(3600 * (tdat - 974424), origin = '2011-03-01', tz = "GMT") 
    
    t.local <- as.POSIXct(format(t.gmt))
    

相关问题