as.Date() не учитывает часовые пояса POSIXct

Итак, вот небольшая «причуда» в функции r 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"

Кто-нибудь видел это? Это баг или очередной глюк? Первоапрельские розыгрыши?


person Thomas Browne    schedule 01.04.2013    source источник
comment
Europe/Berlin нет, а as.Date возвращается к 31 марта.   -  person Arun    schedule 01.04.2013
comment
Я запускаю это на Windows 7 x64. Позвольте мне попробовать на Ubuntu ....   -  person Thomas Browne    schedule 01.04.2013
comment
Но это происходит и с "2013-03-01". as.Date дает 28 февраля.   -  person Arun    schedule 01.04.2013
comment
так... у нас проблемы? Потому что у меня такая же проблема в OS/X. Оба R2.15.2. Сталкивались с другими проблемами, подобными этой, с xts, но на этот раз xts не загружается.   -  person Thomas Browne    schedule 01.04.2013
comment
Это не тонкая причуда. Имхо это серьезная проблема   -  person Ben Rollert    schedule 10.02.2015


Ответы (1)


Часовой пояс по умолчанию для as.Date.POSIXct – "UTC" (см. страницу справки). Попробуйте as.Date(as.POSIXct("2013-04-01", tz = "Europe/London"),tz = "Europe/London").

person Roland    schedule 01.04.2013
comment
Ага! Думаю, я должен был проснуться позже;) - person Thomas Browne; 01.04.2013