将POSIXct应用于数据框

时间:2014-08-10 12:54:41

标签: r timezone dataframe posixct

我有一个名为df的数据框

 id          time
 1        1392825600
 2        1392825597
 3        1392825587

其中是UTC时代以来的时间秒数(数据的当地时间是香港时区)

我想使用POSIXct

将其添加到标准时间戳中

例如

> test = as.POSIXct(1392825587, origin="1970-01-01", tz = "Hongkong")
> test
 [1] "2014-02-19 23:59:47 HKT"

但是当我想将它应用于我的数据框时,我得到的是:

df$TimeStamp = as.POSIXct(df$time, origin="1970-01-01", tz = "Hongkong")
 id          time        TimeStamp
 1        1392825600   2014-02-19 23:00:00
 2        1392825597   2014-02-19 22:59:57
 3        1392825587   2014-02-19 22:59:47  

一切都有1小时的延迟,看起来所用的时区是我的电脑而不是香港电脑(我的时区与香港的1小时差价)

1 个答案:

答案 0 :(得分:0)

试试这个:

format(as.POSIXct(df$time, origin="1970-01-01", tz = "UTC"),
       tz="Asia/Hong_Kong", usetz=TRUE)