as.Date()不尊重POSIXct时区

时间:2013-04-01 12:32:59

标签: r date datetime posixct

好吧所以这里是一个微妙的“怪癖”在r as.Date函数转换为带有时区的POSIXct,我想知道它是不是一个bug。

> as.POSIXct("2013-03-29", tz = "Europe/London")
[1] "2013-03-29 GMT"
> as.Date(as.POSIXct("2013-03-29", tz = "Europe/London"))
[1] "2013-03-29"

到目前为止没问题,但是......

> as.POSIXct("2013-04-01", tz = "Europe/London")
[1] "2013-04-01 BST"
> as.Date(as.POSIXct("2013-04-01", tz = "Europe/London"))
[1] "2013-03-31"

有人见过这个吗?这是一个错误还是另一个怪癖?愚人节?

1 个答案:

答案 0 :(得分:7)

as.Date.POSIXct的默认时区为"UTC"(请参阅帮助页面)。试试as.Date(as.POSIXct("2013-04-01", tz = "Europe/London"),tz = "Europe/London")