Musi być łatwiejszy sposób na zrobienie tego. Mam obiekty, które chcą być odświeżane co jakiś czas, więc chcę nagrać, kiedy zostały utworzone, sprawdzić aktualny znacznik czasu i w razie potrzeby odświeżyć.
datetime.datetime okazało się trudne i nie chcę zagłębiać się w bibliotekę ctime. Czy jest coś takiego łatwiejszego?
(b-a).microseconds
a następnie podzielić to, aby uzyskać sekundy (1000000) lub milisekund (1000)-60
:from datetime import datetime; (datetime(2019, 1, 1, 0, 0) - datetime(2019, 1, 1, 0, 1)).total_seconds()
czy to byłoby dla Ciebie ok?
źródło
(7 będzie czasem, w którym czekałeś nieco powyżej)
Uważam, że datetime.datetime jest dość przydatny, więc jeśli napotkasz skomplikowany lub niezręczny scenariusz, daj nam znać.
EDYCJA: Dzięki @WoLpH za zwrócenie uwagi, że nie zawsze chce się odświeżać tak często, że czasy danych będą blisko siebie. Uwzględniając dni w delcie, możesz obsługiwać dłuższe rozbieżności w znacznikach czasu:
źródło
d.seconds + d.days * 86400
zamiast tego wrócisz , jest to ważne przez wiele dni;)a - b
, w któryma
jest wcześniejb
(tzn. Wynik będzie negatywny):(a - b).seconds == 86282
whilea - b == datetime.timedelta(-1, 86276, 627665)
. Uważam, że poprawną metodą jest użycietimedelta.total_seconds()
… Ale to tylko py2.7 +.timedelta.total_seconds()
. Doceniono odpowiednio.total_seconds()
jest funkcją 2.7+.Mamy funkcję total_seconds () w Pythonie 2.7. Zobacz kod poniżej dla Pythona 2.6
źródło
Oto ten, który dla mnie działa.
Mam nadzieję że to pomoże!
źródło