将日期转换为POSIXct

时间:2014-10-09 13:29:46

标签: r date posixct

为什么转换为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"

1 个答案:

答案 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"