posixct 无法及时正确读取

posixct cannot read in time correctly

我在 R 中遇到 PosiXct 的问题。 我在 GMT 中有纪元时间戳,正在尝试转换为 US/Eastern

当我从纪元转换为时间戳并指定 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,我正在尝试转换为 [=14] =].

我最终使用 lubridateforce_tz 强制 GMT,然后使用 format 将其设置为 US/Eastern。哇,这比我想象的要多 complicated/annoying。