Comment puis-je trouver le temps de la différence entre deux objets datetime en python?
Comment faire la différence de temps en minutes entre deux datetime
objets?
Vous devez vous connecter pour publier un commentaire.
Comment faire la différence de temps en minutes entre deux datetime
objets?
Vous devez vous connecter pour publier un commentaire.
datetime
,pytz
approche par ex., la prise en main exemple de code peut être écrite commed = datetime.now(timezone(EST))
(une ligne lisible au lieu de cinq).Nouveau à Python 2.7 est la
timedelta
méthode d'instance.total_seconds()
. À partir du Python docs, c'est l'équivalent de(td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) /10**6
.Référence: http://docs.python.org/2/library/datetime.html#datetime.timedelta.total_seconds
elapsedTime / timedelta(minutes=1)
pour obtenir la différence en quelques minutes en Python 3À l'aide de datetime exemple
Durée en années
Durée en jours
Durée en heures
La durée en minutes
Durée en secondes
Durée en microsecondes
Durée totale entre les deux dates
ou tout simplement:
Modifier 2019
Depuis cette réponse a gagné du terrain, je vais ajouter une fonction, ce qui pourrait simplifier l'utilisation pour certaines
TypeError: 'float' object is not subscriptable
lors de l'utilisation:then = datetime(2017, 8, 11, 15, 58, tzinfo=pytz.UTC)
now = datetime(2018, 8, 11, 15, 58, tzinfo=pytz.UTC)
getDuration(then, now, 'years')
Juste soustraire l'un de l'autre. Vous obtenez un
timedelta
objet avec la différence.Vous pouvez convertir
dd.days
,dd.seconds
etdd.microseconds
de minutes.Si
a
,b
sont datetime les objets, puis de trouver la différence de temps entre eux en Python 3:Sur les anciennes versions de Python:
Si
a
,b
sont naïfs datetime des objets tels que retourné pardatetime.now()
alors le résultat peut être faux si les objets représentent, heure locale, avec différents décalages horaires par exemple, autour de l'heure d'été transitions ou pour les dernières/prochaines dates. Plus de détails: Trouver si 24 heures ont passé entre datetimes - Python.Pour obtenir des résultats fiables, l'utilisation de l'heure UTC ou timezone-conscient datetime objets.
Utilisation divmod:
C'est la façon dont je reçois le nombre d'heures qui se sont écoulées entre les deux datetime.datetime objets:
timedelta.seconds
seulement donne le nombre de secondes explicitement stockés - qui de la documentation de garanties total moins d'une journée. Vous souhaitez(after - before).total_seconds()
, qui donne le nombre de secondes qui s'étendent sur le ensemble delta.(after - before).total_seconds() // 3600
(Python 2.7) ou(after - before) // timedelta(seconds=3600)
(Python 3)À juste trouver le nombre de jours: timedelta a un 'jours' attribut. Vous pouvez simplement requête.
Juste pensé qu'il pourrait être utile de faire mention de mise en forme ainsi en ce qui concerne timedelta. strptime() analyse une chaîne de caractères représentant une fois et selon un format.
Ce sera de sortie:
0:05:00.518000
- Je utiliser somethign comme ceci :
return t1-t2
c'est de trouver la différence entre l'heure actuelle et 9h30
C'est mon approche à l'aide de mktime.
mktime()
attend l'heure locale comme une entrée. Heure locale peut-être ambigu etmktime()
peut retourner une réponse incorrecte dans ce cas. l'Utilisationa - b
à la place (a,b - objets datetime).mktime()
est inutile et il est parfois faux. Ne pas l'utiliser dans ce cas.Dans d'Autres façons d'obtenir de la différence entre la date;
Donc obtenir une sortie en Min.
Grâce