Question

Comment convertir un objet date / heure en un horodatage POSIX en python? Il existe des méthodes pour créer un objet datetime à partir d'un horodatage, mais je ne semble pas trouver de moyens évidents d'effectuer l'opération dans le sens opposé.

Était-ce utile?

La solution

import time, datetime

d = datetime.datetime.now()
print time.mktime(d.timetuple())

Autres conseils

Pour les calculs UTC, calendar.timegm est l'inverse de time.gmtime .

import calendar, datetime
d = datetime.datetime.utcnow()
print calendar.timegm(d.timetuple())

Notez que Python (3.5.2) inclut maintenant un construit -in méthode pour cela dans les objets datetime :

>>> import datetime
>>> now = datetime.datetime.now() 
>>> now.timestamp() # Local time
1509315202.161655
>>> now.replace(tzinfo=datetime.timezone.utc).timestamp() # UTC
1509329602.161655

En python, time.time () peut renvoyer les secondes sous forme de nombre à virgule flottante incluant un composant décimal avec les microsecondes. Pour reconvertir une date / heure en cette représentation, vous devez ajouter le composant microsecondes, car l'heure directe ne l'inclut pas.

import time, datetime

posix_now = time.time()

d = datetime.datetime.fromtimestamp(posix_now)
no_microseconds_time = time.mktime(d.timetuple())
has_microseconds_time = time.mktime(d.timetuple()) + d.microsecond * 0.000001

print posix_now
print no_microseconds_time
print has_microseconds_time
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top