【发布时间】:2017-06-20 07:15:02
【问题描述】:
我有一个 POSIXct 变量,读取时间为 2016-12-15 20:11:29 PST,但 PST 不正确。它实际上应该是 2016-12-15 20:11:29 GMT
我需要使时区正确,格林威治标准时间,然后我需要将其转换为纽约时间
所以我得到了 2016-12-15 20:11:29 PST。它真的应该是 2016-12-15 20:11:29 GMT 然后我需要将 2016-12-15 20:11:29 GMT 转换为“America/New_York”所以最终结果将是 16:11:29 America/ New_York,因为纽约时间比格林威治标准时间晚。
我已经尝试了很多方法,但无法让它发挥作用。有什么想法吗?
p = as.POSIXct("2016-12-15 20:11:29 PST")
p
********** 更新 ********* 我的真实代码使用变量,建议的解决方案不起作用。见下文
p = as.POSIXct("2016-12-15 20:11:29 PST")
out = as.POSIXct(p, tz="GMT")
out
attr(out,"tzone") <- "America/New_York"
out
> out
[1] "2016-12-15 20:11:29 PST"
> attr(out,"tzone") <- "America/New_York"
> out
[1] "2016-12-15 23:11:29 EST" ### this is incorrect
*** 这也不起作用
p = as.POSIXct(p, usetz=TRUE, tz="GMT")
(format(p, tz="America/New_York") )
[1] "2016-12-15 23:11:29 EST"
> p = as.POSIXct(p, usetz=TRUE, tz="GMT")
> (format(p, tz="America/New_York") )
[1] "2016-12-15 23:11:29"
【问题讨论】: