Я определил дату с часовым поясом, но когда я распечатаю ее, используя пакет scales
date_format
, он дает мне время в UTC, что неудобно для моей цели.date_format timezone strangeness
> library(scales)
> st <- as.POSIXct("2015-10-31 00:00:00",tz="US/Pacific")
> st
[1] "2015-10-31 PDT"
> fmt <- date_format("%Y-%m-%d %R %Z")
> fmt(st)
[1] "2015-10-31 07:00 UTC"
Интересно это работает (так POSIXct
, кажется, понимает часовой пояс) - но не дает мне достаточно контроля над форматом:
> format(st,usetz=T)
[1] "2015-10-31 PDT"
Эта ненадежность намекают в помощь для ?date_format
:
Когда% z или% Z используется для вывода с объектом с назначенным временем зоной, делается попытка использовать значения для этого часового пояса - b ut it не гарантируется.
Так что мой вопрос: как мне сделать Успешно?
Предлагаем обходные пути в порядке и может поддерживать upvotes, но, пожалуйста, поймите, что этот вопрос состоит в том, что я хочу получить представление о том, что происходит с date_format
.
Вы должны * избегать * трехбуквенных акронимов часового пояса, поскольку они * не * стандартизированы. PDT может означать разные вещи в разных локалях. * Странная вещь заключается в том, что 'st' возвращает' PDT' вместо, например, '.... 00:00:00 + 07: 00Z'. Локализация R не очень согласована - в этом случае 'st' использовал собственный формат, который. Если вы хотите отображать даты в * специальном * формате, определите его явно в строке формата. В этом случае, какой именно формат вы хотите вернуть? –
Избегайте трехбуквенных часовых поясов? Я не использовал их, 'date_format' и' format'. Как показывает пример. –
Какой формат вы хотите вернуть? –