Próbuję dowiedzieć się różnice pomiędzy datetime
i time
modułów, i co każdy powinien być stosowany.
Wiem, że datetime
zawiera datę i godzinę. Jaki jest pożytek z time
modułu?
Przykłady byłyby mile widziane, a różnice dotyczące stref czasowych byłyby szczególnie interesujące.
time
idatetime.time
?Trzymaj się,
time
aby uniknąć niejednoznaczności czasu letniego.Używaj wyłącznie
time
modułu systemowego zamiastdatetime
modułu, aby uniknąć niejednoznaczności związanych z czasem letnim (DST) .Konwersja do dowolnego formatu czasu, w tym czasu lokalnego, jest dość łatwa:
import time t = time.time() time.strftime('%Y-%m-%d %H:%M %Z', time.localtime(t)) '2019-05-27 12:03 CEST' time.strftime('%Y-%m-%d %H:%M %Z', time.gmtime(t)) '2019-05-27 10:03 GMT'
time.time()
jest liczbą zmiennoprzecinkową reprezentującą czas w sekundach od epoki systemu.time.time()
jest idealny do jednoznacznego oznaczania czasu.Jeśli system dodatkowo uruchamia program Network Time Protocol (NTP), uzyskuje się całkiem solidną podstawę czasu.
Oto dokumentacja z
time
modułu.źródło
time.localtime()
, który oczywiście ma zapieczętowany czas letni. Jeśli mamy być purystami, czy nie powinniśmy używaćtime.gmtime()
zamiast tego? :)ipython
pokazuje, żetime.gmtime()
zwraca krotkę, podczas gdytime.time()
podaje czas epoki UNIX jako pojedynczą wartość dziesiętną sekund, które upłynęły od 00:00:00 UTC, czwartek, 1 stycznia 1970 r. Funkcjatime.localtime(t)
konwertuje czas epoki na lokalny krotka czasu. Tak więc odpowiedź na twoje pytanie brzmi „nie”.t = time.time()
to liczba zmiennoprzecinkowa reprezentująca czas w sekundach od epoki systemu. Dlatego każdego dnia można po prostu dodać lub odjąć 86400 sekund;t += 86400
Moduł czasu może być użyty, gdy potrzebujesz tylko czasu określonego rekordu - powiedzmy, że masz oddzielną tabelę / plik dla transakcji na każdy dzień, wtedy potrzebujesz tylko czasu. Jednak typ danych czasu jest zwykle używany do przechowywania różnicy czasu między 2 punktami czasu.
Można to również zrobić za pomocą datetime, ale jeśli mamy do czynienia tylko z czasem dla określonego dnia, można użyć modułu czasu.
Datetime służy do przechowywania określonych danych i czasu dla rekordu. Jak w wypożyczalni. Terminem byłby typ danych typu data i godzina.
źródło
Jeśli interesują Cię strefy czasowe, powinieneś rozważyć użycie pytz.
źródło