Jak zwiększyć dzień daty i godziny?
for i in range(1, 35)
date = datetime.datetime(2003, 8, i)
print(date)
Ale muszę poprawnie przejść przez miesiące i lata? Jakieś pomysły?
date = datetime.datetime(2003,8,1,12,4,5)
for i in range(5):
date += datetime.timedelta(days=1)
print(date)
Zwiększanie dat można osiągnąć za pomocą obiektów timedelta:
Wyszukaj obiekty timedelta w dokumentacji Pythona: http://docs.python.org/library/datetime.html
źródło
Oto inna metoda dodawania dni do daty za pomocą relativedelta dateutil.
Wynik:
źródło
timedelta()
ze standardowego biblioteki?W niektórych przypadkach wszystkie obecne odpowiedzi są błędne, ponieważ nie uwzględniają one zmiany przesunięcia stref czasowych w stosunku do czasu UTC. Dlatego w niektórych przypadkach dodanie 24 godzin różni się od dodania dnia kalendarzowego.
Proponowane rozwiązanie
Poniższe rozwiązanie działa na Samoa i utrzymuje lokalny czas na stałym poziomie.
Testowany kod
Wyniki testu
źródło
tzinfo == None
).To było dla mnie proste rozwiązanie:
źródło
Możesz także zaimportować timedelta, aby kod był bardziej przejrzysty.
Następnie przekonwertuj datę na ciąg
Python to jedna linijka
źródło
Krótkie rozwiązanie bez bibliotek. :)
Upewnij się, że „ ciąg d ” ma faktycznie postać
%m/%d/%Y
, aby nie mieć problemów z przejściem z jednego miesiąca do następnego.źródło
d
na,8/31/18
to zwraca8/32/18
. Jeśli zmienisz rok z18
, po prostu się zepsuje.