Conversion de dates UTC -> localtime

Le
david.hautbois
Salut

Je m'arrache les cheveux depuis plusieurs heures avec la gestion des
dates UTC et locales.

Je me résigne à devoir vous demander de l'aide :
J'ai une chaine de caractères qui exprime une date en UTC :
"2007-05-11 16:00:00"
Je cherche le moyen de la transformer en chaine de caractères
exprimant une date locale (gestion auto du décalage horaire) sous
cette forme : "2007-05-11T18:00:00"
(Car décalage de deux heures actuellement pour la France)

Ca me parait pourtant pas bien compliqué, mais je n'arrive pas trouver
quelles fonctions utiliser.

Ca m'a l'air bien galère la gestion des dates en Python, ou alors j'ai
pas compris grand chose (c'est sûrement ça)

Merci pour votre aide.

David.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mathieu Goutelle
Le #612627
Bonjour,

Dans l'article a écrit :
Ca m'a l'air bien galère la gestion des dates en Python, ou alors j'ai
pas compris grand chose (c'est sûrement ça...)


Je trouve aussi la gestion des fuseaux horaires assez sportive... Quand
j'avais rencontré le problème, je m'en étais sorti avec pytz :
http://pytz.sourceforge.net/

Cordialement,
--
Q: Connaissez-vous la différence entre l'ignorance et l'apathie ?
R: J'en sais rien et je m'en fous.
Mathieu Goutelle - http://www.cadichonne.net/

david.hautbois
Le #612626
Ce qui n'énerve le plus, c'est que toutes les fonctions utilisent des
types différents en entrée et en sortie, c'est jamais les mêmes.
On a droit à :
- des secondes Epoch
- des objets time
- des objets datetime
- des tuples

Galère !!!

David.
Bastien Continsouzas
Le #612103
Ca me parait pourtant pas bien compliqué


Sauf qu'il y a un nombre assez énorme de régles différentes et qui
changent régulièrement (par exemple les dates de passage à l'heure
d'été aux Etats-Unis dernièrement). Dans pytz cité plus haut, il y a
plus de 540 zones gérées.

Ce qui n'énerve le plus, c'est que toutes les fonctions utilisent des t ypes différents


J'ai eu le même problème et j'ai utilisé des objets datetime.

Comme je n'avais besoin que des heures françaises et UTC, j'ai juste
adapté l'exemple de la doc python (ce n'est probablement pas la
solution la plus intelligente. Je n'ai découvert pytz qu'après).

La doc expliquant comment écrire ses propres zones et convertir des
objets datetime :
http://docs.python.org/lib/datetime-tzinfo.html

Sinon, il suffit d'utiliser les fonctions et objets définis dans pytz

Pour convertir "2007-05-11 16:00:00" en objet datetime ça ressemble à
ça:
import datetime, time
dd = datetime.datetime(*(time.strptime("2007-05-11 16:00:00", "%Y-%m-
%d %H:%M:%S")[0:6]))

Pour convertir l'objet datetime (après avoir changé de zone) vers
"2007-05-11T18:00:00"
dd.strftime("%Y-%m-%dT%H:%M:%S")

Publicité
Poster une réponse
Anonyme