为什么转换为POSIXct时,以下日期会更改为“2014-07-07”?
Sys.setenv(TZ='America/Sao_Paulo')
d <- as.Date("2014-07-08", format="%Y-%m-%d")
d
[1] "2014-07-08"
as.POSIXct(d)
[1] "2014-07-07 21:00:00 BRT"
答案 0 :(得分:12)
因为as.POSIXct.Date
没有查找时区(并且如果您在.POSIXct
中指定它并且日期对象为“UTC”,则不会将其传递给...
,因此您的POSIXct
偏离Date对象的UTC。
如果可以的话,最好直接在字符串上调用as.POSIXct
:
> as.POSIXct("2014-07-08", format="%Y-%m-%d")
[1] "2014-07-08 BRT"