Comment faire pour convertir les dates/heures d'un fuseau horaire à un autre dans la R?
Si j'ai un jour comme celui-ci dans les, heure de Londres: "2009-06-03 19:30", comment puis-je convertir à l'équivalent du temps sur la Côte Ouest américaine?
Vous devez vous connecter pour publier un commentaire.
Changer le tzone attribut d'un "POSIXct' objet:
Note que c'est encore un POSIXct objet, tzone a changé, et de corriger l'offset a été appliquée:
Paquet
lubridate
est titulaire de deux fonctions pour convertir fuseaux horaires. Selon les pages d'aide:force_tz
retourne une date-heure qui a la même heure quex
dans le nouveau fuseau horaire.with_tz
change le fuseau horaire dans lequel un instantané s'affiche. L'heure de l'horloge affichée pour l'instant changements, mais le moment du délai visé reste le même.D'abord de convertir l'heure de Londres pour un
POSIXct
objet:Ensuite utiliser
format
pour imprimer la date dans un autre fuseau horaire:Il y a quelques astuces pour trouver le bon fuseau horaire de l'identificateur à utiliser. Plus de détails dans ce post, à la de Révolutions blog: La conversion des fuseaux horaires dans R: conseils, astuces et pièges
Si vous voulez faire cela en une seule ligne, rappelons que toute
POSIXct
objet dans la R est vraiment juste un nombre de secondes UTC depuis l'époque de début), et que le "fuseau horaire" n'est qu'un attribut qui détermine comment ce nombre est imprimé.Par conséquent, nous pouvons utiliser la
.POSIXct
fonction d'assistance comme suit:as.integer
bandes de la classe et les attributs dex
, et.POSIXct
est un raccourci pour la construction d'un POSIXct objet; si votre objet a millisecondes et que vous souhaitez garder une trace d'eux, vous pouvez utiliseras.numeric(x)
.