【发布时间】:2017-02-03 10:02:40
【问题描述】:
由于某种原因,我无法通过as.POSIXlt 调整时区。
time <- "Wed Jun 22 01:53:56 +0000 2016"
t <- strptime(time, format = '%a %b %d %H:%M:%S %z %Y')
t
[1] "2016-06-21 21:53:56"
无法更改时区
as.POSIXlt(t, "EST")
[1] "2016-06-21 21:53:56"
as.POSIXlt(t, "Australia/Darwin")
[1] "2016-06-21 21:53:56"
可以更改Sys.time()的时区
as.POSIXlt(Sys.time(), "EST")
[1] "2016-09-26 01:47:22 EST"
as.POSIXlt(Sys.time(), "Australia/Darwin")
[1] "2016-09-26 16:19:48 ACST"
如何解决?
【问题讨论】:
-
我认为在时间向量上运行前两个 posixlt 命令时,您实际上是在更改向量的时区,而不是时间。所以它现在认为 't' 是达尔文时间的 21:53 而不是 EST。
-
试试
format(t, tz='Australia/Darwin', usetz=TRUE)