Pergunta

Onde posso encontrar uma lista de todos os nomes de horários legais para a função R as.POSIXct?

as.POSIXct("1970-01-01",tz="CST") gera um aviso de que "CST" (Horário Padrão Central) é desconhecido.

Foi útil?

Solução

?Sys.timezone tem algumas dicas, especificamente para olhar: "R_HOME/share/zoneinfo/zone.tab" (R_HOME é o diretório em que R está instalado).Tenha em mente que os fusos horários são desagradáveis ​​e muitas de suas nuances são específicas do sistema operacional (e da localidade?).

No seu caso específico, você quer "CST6CDT" em vez de "CST".

Outras dicas

Coisas de fuso horário podem te levar Nozes!!

Estando localizado na Alemanha, é isso que eu costumava fazer para definir meu TZ:

> options(tz="Europe/Berlin")

Fazendo isso, eu sempre me perguntei por que R jogaria avisos "desconhecidos do fuso horário":

> 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'

Algum dia eu descobri essa configuração de TZ via options() não foi suficiente como a variável ambiente TZ não é afetado e, portanto, todo o problema:

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

Mudar isso deve acabar com os avisos desagradáveis:

> 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"

A maioria das plataformas R usa o banco de dados da zona do tempo compilada por David Olson, onde a referência preferida é por local. Lá, os nomes estão um pouco desatualizados, mas eles ajudarão você a continuar.

Encontre uma lista completa de fusos horários disponíveis (não funciona no Windows):

OlsonNames()

Para pessoas que executam janelas que o olsonNames () não funciona: Veja a lista completa aqui.

Ou leia com mais detalhes aqui http://www.twinsun.com/tz/tz-link.htm

Não consegui encontrá -lo naquele local na minha marca, mas encontrou uma versão zippeada em um diretório de origem. Aqui está uma lista de abreviações do fuso horário que aparecem no nível superior do zones.tab Arquivo:

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

Também existem pastas com nomes de continentes/países, que têm mais opções como o America/New_York Exemplo acima.:

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

Isso foi encontrado no /R-2.11.1/src/extra/tzone/zoneinfo.zip Arquivo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top