web-dev-qa-db-fra.com

Nom du fuseau horaire inconnu dans R Stryptime / AS.posixcct

Où puis-je trouver une liste de tous les noms de temps légaux pour la fonction R as.POSIXct?

as.POSIXct("1970-01-01",tz="CST") génère un avertissement que "CST" (heure normale centrale) est inconnue.

28
ahala

?Sys.timezone a des indices, spécifiquement à regarder dans: "R_HOME/share/zoneinfo/zone.tab" (R_HOME Le répertoire R est installé dans). N'oubliez pas que les zones de temps sont méchantes et beaucoup de leurs nuances sont du système d'exploitation (et de la locale?) Spécifique.

Dans votre cas spécifique, vous voulez "CST6CDT" à la place de "CST".

21
Joshua Ulrich

Timezone Stuff peut vous conduire ÉCROUS !!

Être situé en Allemagne, c'est ce que je faisais pour mettre mon TZ:

> options(tz="Europe/Berlin")

Ce faisant, je me suis toujours demandé pourquoi raverait "Timezone inconnu" des avertissements:

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

Un jour j'ai découvert que le réglage TZ via options() n'était pas suffisant que l'environnement variable TZ n'est pas affecté et donc tout le problème:

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

Changer cela devrait supprimer les avertissements méchants:

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

Impossible de le trouver dans cet endroit sur ma marque mais trouvé une version zippée dans un répertoire source. Voici une liste des abréviations de fuseau horaire qui apparaissent au niveau supérieur de la zones.tab déposer:

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

Il existe également des dossiers avec des noms de continents/pays, qui ont plus d'options telles que la America/New_York exemple ci-dessus.:

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

Cela a été trouvé dans le /R-2.11.1/src/extra/tzone/zoneinfo.Zip déposer.

8
42-

La plupart des plates-formes R utilisent la base de données temporelle compilée par David Olson, où la référence préférée est par emplacement. Les noms sont un peu obsolètes mais ils vous aideront à y aller.

Trouvez une liste complète des zones horaires disponibles (ne fonctionne pas sous Windows):

OlsonNames()

Pour les gens qui exécutent des fenêtres que Olsonnames () ne fonctionne pas: voir la liste complète ici .

Ou lire plus en détail ici http://www.twinsun.com/tz/tz-link.htm

8
mmann1123