我在R. PosiXct
遇到问题
我在GMT
中有时间戳,我正在尝试转换为US/Eastern
。
当我从epoch转换为时间戳并指定tz = "GMT"
时,R增加4个四肢,我认为我正在从东方(我现在的位置)转换为GMT
。
> data$Timestamp <- as.POSIXct((data$TIMESTAMP/1000), origin="1970-01-01",tz = "GMT")
> str(data)
'data.frame': 1353717 obs. of 2 variables:
$ TIMESTAMP : num 1.49e+12 1.49e+12 1.49e+12 1.49e+12 1.49e+12 ...
$ Timestamp : POSIXct, format: "2017-04-01 04:00:33" "2017-04-01 04:00:33" "2017-04-01 04:01:15" "2017-04-01 04:01:15" ...
当我尝试强制Timestamp
进入US/Eastern
时,会将其转换回GMT
。我真的很困惑。有人可以帮忙吗?
> attr(data$Timestamp,"tzone") <- "US/Eastern"
> str(data)
'data.frame': 1353717 obs. of 2 variables:
$ TIMESTAMP : num 1.49e+12 1.49e+12 1.49e+12 1.49e+12 1.49e+12 ...
$ Timestamp : POSIXct, format: "2017-04-01 00:00:33" "2017-04-01 00:00:33" "2017-04-01 00:01:15" "2017-04-01 00:01:15" ...
混淆是R认为原始数据在US/Eastern
(我当前的时区),但它真的在GMT
,而我正在尝试转换到US/Eastern
。
答案 0 :(得分:0)
我最终使用lubridate
的{{1}}来强制使用GMT,然后使用force_tz
来获取format
。哇,这比我想象的更复杂/烦人。