R: форматирование даты игнорирует часовой пояс для объектов POSIXlt

Я не могу получить R для форматирования POSIXlt объекты в нужном часовом поясе. POSIXct работает как положено. Это ошибка или я что-то упустил?

date.str = "2015-12-09 13:30"
from = "Europe/London"
to = "America/Los_Angeles"

lt = as.POSIXlt(date.str, tz=from)
format(lt, tz=to, usetz=TRUE)
#[1] "2015-12-09 13:30:00 GMT"

ct = as.POSIXct(date.str, tz=from)
format(ct, tz=to, usetz=TRUE)
#[1] "2015-12-09 05:30:00 PST"

tzone атрибуты одинаковы:

attributes(ct)$tzone
#[1] "Europe/London"
attributes(lt)$tzone
#[1] "Europe/London"

Решение

Как отмечает @nicola, format.POSIXlt не имеет tz параметр. Чтобы распечатать POSIXlt дата в другом часовом поясе можно использовать lubridate пакет для преобразования POSIXlt Сначала установите объект в желаемом часовом поясе:

require(lubridate)
lt.changed = with_tz(lt, tz=to)
format(lt.changed, usetz=TRUE)
#[1] "2015-12-09 05:30:00 PST"

0 ответов

Другие вопросы по тегам