web-dev-qa-db-fra.com

Horodatage Python du jour, du mois et de l'année

Est-il possible de créer un horodatage UNIX en Python (nombre de secondes) avec uniquement le jour, le mois et l'année à partir d'un objet de date? Je cherche essentiellement ce que l'horodatage serait à minuit (heure, minute et seconde seraient 0).

Merci!

22
charliesneath
>>> import time
>>> import datetime
>>> dt = datetime.datetime.strptime('2012-02-09', '%Y-%m-%d')
>>> time.mktime(dt.timetuple())
1328774400.0

--OU--

>>> dt = datetime.datetime(year=2012, month=2, day=9)
>>> time.mktime(dt.timetuple())
1328774400.0

Pour d’autres types d’heure comme Hour et Second, cliquez ici: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior

48
sberry

Vous pouvez également utiliser datetime.combine ()

>>> import datetime
>>> import time
>>> date1 = datetime.date(year=2012,day=02,month=02)
>>> date2 = datetime.datetime.combine(date1,datetime.time())
>>> date2
datetime.datetime(2012, 2, 2, 0, 0)
>>> tstamp = time.mktime(date2.timetuple())
>>> tstamp
1328121000.0

Le résultat dépend du fuseau horaire local (dans ce cas, IST). J'espère que quelqu'un pourra m'indiquer comment obtenir le résultat GMT

3
RedBaron

Vous pouvez le faire en obtenant le nombre de secondes entre la date et l'époque (1er janvier 1970):

from datetime import datetime

Epoch = datetime(1970, 1, 1)
d = datetime(2012, 2, 10)

print (d - Epoch).total_seconds()
0
jcollado