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

时间:2014-07-01 11:20:44

标签: r datetime numeric posixct

我有一个数据框,其中包含应该读入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工作,但我还没有找到解决方案(即我最终得到了一个新的POS的POSIXct对象或最终具有模糊的日期时间值)。

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

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

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

1 个答案:

答案 0 :(得分:4)

根据您想要的时区尝试以下其中一项:

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

t.local <- as.POSIXct(format(t.gmt))