3

有一点我不明白。我只是尝试将日期转换为其他时区。日期采用 8601-ISO 格式。我跟着这个

pb.txt <- "2012-09-11T21:23:20Z"
pb.date <- as.POSIXct(pb.txt, tz="UTC")
format(pb.date, tz="WEST",usetz=TRUE)
[1] "2012-09-11 WEST"

为什么只出现日期而不出现时间戳?我也试过:

pb.date <- as.POSIXct(pb.txt, origin=ISOdatetime(2012,09,11,21,23,20))
format(pb.date, tz="WEST",usetz=TRUE)
[1] "2012-09-10 22:00:00 WEST

更好,但时间戳是四舍五入的。如何完美转换 8601-ISO 日期时间?

4

2 回答 2

10

使用正确的格式:

as.POSIXct(pb.txt, "%Y-%m-%dT%H:%M:%S", tz="UTC")
[1] "2012-09-11 21:23:20 UTC"
于 2013-03-19T13:43:19.997 回答
1

除了@JoshuaUlrich 的回答,不要使用夏令时时区:使用常规时区,如果所选日期在夏季时,系统将自动转换。

根据pb.date <- as.POSIXct(pb.txt, "%Y-%m-%dT%H:%M:%S", tz="UTC")约书亚的回答,这失败了:

format(pb.date, tz="WEST",usetz=TRUE)
[1] "2012-09-11 21:23:20 UTC"

但这不是:

format(pb.date, tz="WET", usetz=TRUE)
[1] "2012-09-11 22:23:20 WEST"
于 2013-03-19T13:54:42.100 回答