неизвестное имя часового пояса в R strptime / as.POSIXct - PullRequest
24 голосов
/ 29 октября 2010

Где найти список всех допустимых имен времени для функции R as.POSIXct?

as.POSIXct("1970-01-01",tz="CST") генерирует предупреждение о том, что "CST" (центральное стандартное время) неизвестно.

Ответы [ 4 ]

21 голосов
/ 08 ноября 2011

Вещи из часовых поясов могут привести вас в чувство ОРЕХИ !!

Находясь в Германии, я использовал это для установки своего tz:

> options(tz="Europe/Berlin")

При этом я всегда задавался вопросом, почему R выбрасывает предупреждения о «неизвестном часовом поясе»:

> t <- "2011-11-08 09:42:00"
> as.POSIXct(t, tz=getOption("tz"))
[1] "2011-11-08 09:42:00 CET"
Warning messages:
1: In strptime(xx, f <- "%Y-%m-%d %H:%M:%OS", tz = tz) :
  unknown timezone 'MET-1MST'
2: In as.POSIXct.POSIXlt(x) : unknown timezone 'MET-1MST'
3: In strptime(x, f, tz = tz) : unknown timezone 'MET-1MST'
4: In as.POSIXct.POSIXlt(as.POSIXlt(x, tz, ...), tz, ...) :
  unknown timezone 'MET-1MST'
5: In as.POSIXlt.POSIXct(x, tz) : unknown timezone 'MET-1MST'

Однажды я узнал, что установки tz с помощью options() недостаточно, поскольку переменная окружения TZ не затронута, и, следовательно, все проблемы:

> Sys.getenv("TZ")
[1] "MET-1MST"

Изменение этого должно устранить неприятные предупреждения:

> Sys.setenv(TZ="Europe/Berlin")
> Sys.getenv("TZ")
[1] "Europe/Berlin"
> as.POSIXct(t, tz=getOption("tz"))
[1] "2011-11-08 09:42:00 CET"
20 голосов
/ 29 октября 2010

?Sys.timezone имеет несколько подсказок, специально для поиска: "R_HOME/share/zoneinfo/zone.tab" (R_HOME - каталог, в котором установлен R).Имейте в виду, что часовые пояса противны и многие их нюансы зависят от операционной системы (и локали?).

В вашем конкретном случае вы хотите "CST6CDT" вместо "CST".

8 голосов
/ 18 сентября 2015

Большинство платформ R используют базу данных о часовых поясах, скомпилированную Дэвидом Олсоном, где предпочтительными являются ссылки по местоположению.Там имена немного устарели, но они помогут вам начать работу.

Найти полный список доступных часовых поясов (не работает на окнах):

OlsonNames()

Для пользователей, работающих с окнами, которые OlsonNames () не работает: полный список здесь .

или более подробно читайте здесь http://www.twinsun.com/tz/tz-link.htm

7 голосов
/ 01 ноября 2010

Не могу найти его в этом месте на моем компьютере, но нашел архивную версию в исходном каталоге. Вот список сокращений часовых поясов, которые появляются на верхнем уровне файла zones.tab:

CET, CST6CDT, Cuba, EET, EST, EST5EDT, Egypt, Eire, Factory, GB, GB-Eire, GMT,
GMT+0, GMT-0, GMT0, Greenwich, HST, Hongkong, Iceland, Iran, Israel, Jamaica, Japan,
Kwajalein, Libya, MET, MST, MST7MDT, NZ, NZ-CHAT, Navajo, PRC, PST8PDT, Poland, Portugal,
ROC, ROK, Singapore, Turkey, UCT, UTC, Universal, W-SU, WET, Zulu

Существуют также папки с названиями континентов / стран, которые имеют дополнительные параметры, такие как пример America/New_York выше .:

Africa/     Asia/       Canada/     Indian/
America/    Atlantic/   Chile/      Mexico/
Antarctica/ Australia/  Etc/        Pacific/
Arctic/     Brazil/     Europe/     US/

Это было найдено в файле /R-2.11.1/src/extra/tzone/zoneinfo.zip.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...