Różnica między Python datetime a modułami czasu

Próbuję rozgryźć różnice między datetime i time modułami I do czego każdy z nich powinien być używany.

Wiem, że datetime podaje zarówno datę, jak i czas. Do czego służy moduł time?

Przykłady byłyby mile widziane, a różnice dotyczące stref czasowych byłyby szczególnie interesujące.

Author: alex, 2011-09-20

4 answers

Moduł time jest przeznaczony głównie do pracy z uniksowymi znacznikami czasu; wyrażony jako Liczba zmiennoprzecinkowa liczona w sekundach od epoki Uniksa. moduł datetime może obsługiwać wiele z tych samych operacji, ale zapewnia bardziej obiektowy zestaw typów, a także ma pewne ograniczone wsparcie dla stref czasowych.

 70
Author: SingleNegationElimination,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-20 04:00:50

Jeśli jesteś zainteresowany strefami czasowymi, powinieneś rozważyć użycie pytz.

 4
Author: donkopotamus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-20 04:42:31

Moduł czasu może być używany, 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 pomię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, wtedy można użyć modułu czasu.

Datetime jest używany do przechowywania określonego Dane i czas na zapis. Jak w wypożyczalni. Date będzie datatetime datatype.

 3
Author: Jan S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-20 03:56:57

Trzymaj się time, aby zapobiec dwuznaczności czasu DST.

Osobiście wolę używać tylko modułu systemu time, Aby zapobiec problemom dwuznaczności z czasem letnim (DST) .

Konwersja do dowolnego formatu czasu, w tym czasu lokalnego jest dość prosta:

import time
t = time.time()
t_str = time.strftime('%Y-%m-%d %H:%M %Z', time.localtime(t))

Jeśli system dodatkowo uruchamia network time protocol (NTP) dæmon, jeden kończy się z dość solidną bazą czasu.

 2
Author: Serge Stroobandt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-27 18:48:25