web-dev-qa-db-fra.com

Obtenez des secondes depuis minuit en python

Je veux obtenir les secondes qui ont expiré depuis minuit dernier. Quelle est la manière la plus élégante en python?

32
linqu

Il est préférable de faire un seul appel à une fonction qui renvoie la date/heure actuelle:

from datetime import datetime

now = datetime.now()
seconds_since_midnight = (now - now.replace(hour=0, minute=0, second=0, microsecond=0)).total_seconds()

Ou

datetime.now() - datetime.now()

retourner zéro timedelta pour quelqu'un ici?

36
eumiro
import datetime
now = datetime.datetime.now()
midnight = now.replace(hour=0, minute=0, second=0, microsecond=0)
seconds = (now - midnight).seconds

ou

import datetime
now = datetime.datetime.now()
midnight = datetime.datetime.combine(now.date(), datetime.time())
seconds = (now - midnight).seconds

Le choix est une question de goût.

15
Lennart Regebro

Je le ferais comme ça

import datetime
import time

today = datetime.date.today()
seconds_since_midnight = time.time() - time.mktime(today.timetuple())
2
linqu