Подтвердить что ты не робот

Неизвестное имя часового пояса в R strptime/as.POSIXct

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Информация о часовом поясе может привести вас к NUTS!!

Будучи расположенным в Германии, это то, что я делал, чтобы установить мой 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"

Ответ 3

Не удалось найти его в этом месте на моем make, но нашел версию с zipped в исходном каталоге. Здесь приведен список сокращений часовых поясов, которые отображаются на верхнем уровне файла 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.

Ответ 4

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

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

OlsonNames()

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

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