2011-09-20 16 views
80

Sto cercando di capire le differenze tra i moduli datetime e time e per cosa dovrebbero essere utilizzati.Differenza tra i moduli Python datetime vs time

So che datetime fornisce sia le date che l'ora. Qual è l'uso del modulo time?

Gli esempi sarebbero apprezzati e le differenze riguardanti i fusi orari sarebbero particolarmente interessanti.

risposta

62

il modulo time è principalmente per il funzionamento con timestamp di unix; espresso come numero in virgola mobile considerato da secondi dall'epoca unix. il modulo datetime può supportare molte delle stesse operazioni, ma offre un set di tipi più orientato agli oggetti e ha anche un supporto limitato per i fusi orari.

+7

Inoltre, quali sono le differenze tra 'time' e' datetime.time'? – SparkAndShine

+0

Sarebbe bello dettagliare le proprietà come se fosse in tempo reale/monotona. Come nello standard POSIX hai: CLOCK_REALTIME, CLOCK_MONOTONIC, CLOCK_THREAD, ecc ... Su orologi POSIX vedi: http://stackoverflow.com/questions/3523442/difference- between clock-realtime-and-clock-monotonic –

3

Il modulo del tempo può essere utilizzato quando è necessario solo il tempo di un determinato record, ad esempio se si dispone di una tabella/file separata per le transazioni per ogni giorno, sarà necessario solo il tempo. Tuttavia il tipo di dati orari viene solitamente utilizzato per memorizzare l'ora differenza tra 2 punti di tempo.

Questo può essere fatto anche utilizzando datetime, ma se si tratta solo di tempo per un giorno particolare, quindi il modulo di tempo può essere utilizzato.

Data/ora è utilizzato per memorizzare un dato particolare e l'ora per un record. Come in un'agenzia di affitti. La data di scadenza sarebbe un tipo di dati datetime.

3

Se sei interessato a fusi orari, dovresti considerare l'uso di pytz.

+4

sembra come se fosse più interessato al tempo e ai moduli datetime e alle differenze tra i fusi orari. con tutto il dovuto rispetto, portare un'altra dipendenza in questo è praticamente irrilevante. – sbartell

+2

Il supporto dei fusi orari sia nel tempo che nei moduli datetime è davvero molto scarso ... se è veramente interessato a gestire i fusi orari in un modo utile, allora dovrebbe davvero sapere su pytz. Tu porti le dipendenze per risolvere il problema che le tue attuali dipendenze non ti aiutano a risolvere il tuo problema ... – donkopotamus

0

Stick per time per evitare l'ambiguità dell'ora legale.

Personalmente, preferisco utilizzare solo il modulo time per prevent ambiguity issues with daylight savings time (DST).

Conversione in qualsiasi formato ora tra cui l'ora locale da lì è piuttosto facile:

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

Se il sistema gestisce inoltre il network time protocol (NTP) demone, si avrà base temporale piuttosto solido.

Problemi correlati