Je m'arrache les cheveux depuis plusieurs heures avec la gestion des
dates UTC et locales.
Je me r=E9signe =E0 devoir vous demander de l'aide :
J'ai une chaine de caract=E8res qui exprime une date en UTC :
"2007-05-11 16:00:00"
Je cherche le moyen de la transformer en chaine de caract=E8res
exprimant une date locale (gestion auto du d=E9calage horaire) sous
cette forme : "2007-05-11T18:00:00"
(Car d=E9calage de deux heures actuellement pour la France)
Ca me parait pourtant pas bien compliqu=E9, mais je n'arrive pas trouver
quelles fonctions utiliser.
Ca m'a l'air bien gal=E8re la gestion des dates en Python, ou alors j'ai
pas compris grand chose (c'est s=FBrement =E7a...)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Mathieu Goutelle
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/
Bonjour,
Dans l'article <1178980373.791538.243510@y80g2000hsf.googlegroups.com>,
david.hautbois@gmail.com 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/
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
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.
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
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
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")
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")
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")