Comment convertir une chaîne au format "%d/%m/%Y"
en horodatage?
"01/12/2011" -> 1322697600
Comment convertir une chaîne au format "%d/%m/%Y"
en horodatage?
"01/12/2011" -> 1322697600
Pour convertir la chaîne de caractères dans un objet date:
from datetime import date, datetime
date_string = "01/12/2011"
date_object = date(*map(int, reversed(date_string.split("/"))))
assert date_object == datetime.strptime(date_string, "%d/%m/%Y").date()
Le moyen de convertir l'objet date en POSIX timestamp dépend du fuseau horaire. À partir de la Conversion de datetime.date
UTC timestamp en Python:
date objet représente à minuit UTC
import calendar
timestamp1 = calendar.timegm(utc_date.timetuple())
timestamp2 = (utc_date.toordinal() - date(1970, 1, 1).toordinal()) * 24*60*60
assert timestamp1 == timestamp2
date objet représente à minuit heure locale
import time
timestamp3 = time.mktime(local_date.timetuple())
assert timestamp3 != timestamp1 or (time.gmtime() == time.localtime())
Les horodateurs sont différents, sauf à minuit UTC et l'heure locale est de la même instance.
La réponse dépend également de votre fuseau horaire de la date d’entrée. Si votre date est une date locale, vous pouvez utiliser la fonction mktime() comme katrielalex dit - seulement je ne vois pas pourquoi il a utilisé le datetime au lieu de cette version plus courte :
Mais observer que mon résultat est différente que la sienne, que je suis probablement dans un TZ différent (et le résultat est exempt de fuseau horaire UNIX timestamp)
Maintenant, si la date d’entrée est déjà au format UTC, que je crois que la bonne solution est :
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.