2011-09-20 15 views
80

Próbuję zrozumieć różnice między modułami datetime i time i do czego każdy powinien być użyty.Różnica między dataksem datetime a modułem czasu

Wiem, że datetime zawiera zarówno daty, jak i godzinę. Jaki jest pożytek z modułu time?

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

Odpowiedz

62

Moduł time jest przeznaczony głównie do pracy ze znacznikami czasu unix; wyrażone jako liczba zmiennoprzecinkowa liczona jako sekundy od epoki unix. Moduł datetime może obsługiwać wiele takich samych operacji, ale zapewnia bardziej zorientowany obiektowo zestaw typów, a także ma ograniczoną obsługę stref czasowych.

+7

Co więcej, jakie są różnice między 'time' i' datetime.time'? – SparkAndShine

+0

Byłoby miło wyszczególnić właściwości, takie jak w czasie rzeczywistym/monotonicznym. Podobnie jak w standardzie POSIX masz: CLOCK_REALTIME, CLOCK_MONOTONIC, CLOCK_THREAD, etc ... Na zegarach POSIX patrz: http://stackoverflow.com/questions/3523442/difference-between-clock-realtime-and-clock-monotonic –

3

Moduł czasu może być używany, gdy potrzebujesz czasu określonego rekordu - np. Powiedzmy, że masz oddzielny stół/plik dla transakcji na każdy dzień, to potrzebujesz czasu. Jednak typ danych czasu jest zazwyczaj używany do przechowywania czasu różnica między między 2 punktami czasu.

Można to również zrobić za pomocą datetime, ale jeśli mamy do czynienia tylko z czasem na dany dzień, wówczas 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 wymagalności byłby typ danych typu data/godzina.

3

Jeśli interesują Cię strefy czasowe, powinieneś rozważyć użycie pytz.

+4

brzmi jak najbardziej zainteresowany modułami czasu i datetime oraz różnicami stref czasowych między nimi. z całym szacunkiem, przynależność do innej zależności jest prawie nieistotna. – sbartell

+2

Obsługa stref czasowych w modułach czasu i datetime jest naprawdę bardzo słaba ... jeśli naprawdę jest zainteresowany obsługą stref czasowych w użyteczny sposób, to naprawdę powinien wiedzieć o pytz. Wprowadzasz zależności, aby rozwiązać problem, który powoduje, że twoje obecne zależności nie pomagają rozwiązać twojego problemu ... – donkopotamus

0

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

Osobiście wolę używać tylko modułu systemu time w celu uzyskania prevent ambiguity issues with daylight savings time (DST).

Konwersja do dowolnego formatu czasu w tym czasie lokalnym stamtąd jest całkiem proste:

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

Jeśli system dodatkowo prowadzi network time protocol (NTP) demona, będziesz miał dość solidną podstawę czasu.

Powiązane problemy