2013-04-01 32 views
4

好吧,所以这里是一个微妙的“怪癖”r.Date.Date函数转换从时区的POSIXct,我想知道它是否是一个错误。as.Date()不尊重POSIXct时区

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

有人看到这一点?这是一个错误还是另一个怪癖?愚人节?

+0

'欧洲/柏林'*与'as.Date'不一样的时间可以追溯到3月31日。 – Arun

+0

我在Windows 7 x64上运行这个。让我试试Ubuntu .... –

+0

但是这也发生在'“2013-03-01”'。 'as.Date'给出2月28日。 – Arun

回答

6

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

+0

aha!猜猜我以后应该醒来;) –