Местный день от posixct

Я работал с некоторыми данными, записанными на рабочем месте на Гавайях, используя время UTC вместо местного времени. Поскольку на Гавайях большое смещение UTC (UTC-10:00), это означает, что полночь UTC приходится на середину рабочего дня, поэтому важно локализовать мои даты.

К сожалению, as.Date() использует даты UTC, а не гавайские даты, например:

example_time <- as.POSIXct("8/1/14 0:05", tz = "UTC", format = "%m/%d/%y %H:%M")
example_time
# [1] "2014-08-01 00:05:00 UTC"
attributes(example_time)$tzone <- "Pacific/Honolulu"
example_time
# [1] "2014-07-31 14:05:00 HST"
as.Date(example_time)
# [1] "2014-08-01"
weekdays(example_time)
# [1] "Thursday"
weekdays(as.Date("2014-08-01"))
# [1] "Friday"

Что мне следует использовать вместо этих объектов даты, если я использую dplyr для суммирования некоторых наблюдений, сделанных в разное время каждого дня, а затем отображаю эту сводку на графике? Лучшее решение было бы хорошо работающим, если бы я мог dplyr::group_by() его, тем более, что Даты также хорошо выглядят на графике ggplot?


person Roger Filmyer    schedule 10.11.2015    source источник


Ответы (1)


as.Date есть вариант tz, вы пробовали?

as.Date(example_time)
## [1] "2014-08-01"
as.Date(example_time, tz='Pacific/Honolulu')
## [1] "2014-07-31"
person r2evans    schedule 10.11.2015
comment
Я не подумал проверить, что даты могут иметь часовые пояса. Есть ли простой способ сделать это без ручного указания часового пояса, или нет ничего проще, чем as.Date(example_time, tz=attributes(example_time)$tzone) - person Roger Filmyer; 10.11.2015
comment
Вы пытались написать вспомогательную функцию, чтобы сделать именно это? - person r2evans; 10.11.2015
comment
Я знаю, это может быть лучший способ сделать это. Мне любопытно, является ли непереносимость часовых поясов между POSIXct и Date ожидаемым поведением? Мне кажется причудливым. - person Roger Filmyer; 10.11.2015
comment
Для границ дат по умолчанию имеет смысл использовать GMT. Таким образом, независимо от вашего часового пояса, нет никакой неясности в отношении того, какая сейчас дата. - person bramtayl; 10.11.2015