Python DataOra, OraDelta, Strftime(Formato) con esempi
Le classi datetime in Python sono classificati in 5 classi principali.
- date – Manipola solo la data (mese, giorno, anno)
- time – Ora indipendente dal giorno (Ore, minuti, secondi, microsecondi)
- datetime – Combinazione di ora e data (mese, giorno, anno, ora, secondo, microsecondo)
- timedelta: durata di tempo utilizzata per manipolare le date
- tzinfo— Una classe astratta per gestire i fusi orari
Come utilizzare la classe Date e DateTime
Passo 1 ) Prima di eseguire il codice per il formato datetime in Python, è importante importare il file Python moduli data/ora come mostrato nello screenshot qui sotto.
Queste istruzioni di importazione sono parti di funzionalità predefinite nel file Python libreria che ti consente di manipolare date e orari, senza scrivere alcun codice.
Considerare i seguenti punti prima di eseguire l' Python codice del formato data/ora
from datetime import date
Questa riga dice il Python interprete per importare la classe data dal modulo datetime in Python. Purtroppo non stiamo scrivendo il codice per questa funzionalità della data, lo stiamo semplicemente importando per nostro uso
Passo 2 ) Successivamente, creiamo un'istanza dell'oggetto data.
Passo 3 ) Successivamente, stampiamo la data ed eseguiamo il codice.
L'output è quello previsto.
Stampa la data utilizzando date.today()
date.today
la funzione ha diverse proprietà ad essa associate. Possiamo stampare singoli giorni/mesi/anni e molte altre cose
Vediamo un esempio
Numero del giorno feriale di oggi
La funzione date.today() fornisce anche il numero del giorno della settimana. Ecco la tabella dei giorni feriali che inizia con Monday come 0 e domenica come 6
Giorno | Numero del giorno della settimana |
---|---|
Monday | 0 |
Martedì | 1 |
mercoledì | 2 |
Giovedì | 3 |
venerdì | 4 |
Sabato | 5 |
Domenica | 6 |
Weekday Number è utile per gli array il cui indice dipende dal giorno della settimana.
Python Data e ora attuali: adesso() oggi()
Passo 1) Come gli oggetti Date, possiamo anche usare “OGGETTI DATAORA” in Python. Python gli oggetti data e ora forniscono la data insieme all'ora ore, minuti, secondi e millisecondi.
Quando eseguiamo il codice per datetime, fornisce l'output con la data e l'ora correnti.
Passo 2) Con “DATETIME OBJECT” è possibile richiamare anche la classe temporale.
Supponiamo di voler stampare solo l'ora corrente senza la data.
t = datetime.time(datetime.now())
- Avevamo importato la classe temporale. Gli assegneremo il valore corrente del tempo utilizzando datetime.now()
- Stiamo assegnando il valore dell'ora corrente alla variabile t.
E questo mi darà proprio il tempo. Quindi eseguiamo questo programma.
Ok, quindi puoi vedere che qui ho la data e l'ora. E poi la riga successiva, ho solo il tempo da solo
Passo 3) Applicheremo il nostro indicizzatore dei giorni feriali all'arrayList dei nostri giorni feriali per sapere quale giorno è oggi
- All'operatore dei giorni feriali (wd) viene assegnato il numero compreso tra (0-6) a seconda del giorno della settimana corrente. Qui abbiamo dichiarato l'array della lista per i giorni (lunedì, martedì, mercoledì...domenica).
- Usa quel valore di indice per sapere che giorno è. Nel nostro caso, è il numero 2 e rappresenta mercoledì, quindi nell'output verrà stampato "Che è mercoledì".
Ecco il codice completo per ottenere la data e l'ora correnti utilizzando datetime now
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
Come formattare l'output di data e ora con Strftime()
A partire da ora abbiamo imparato come utilizzare datetime e date oggetto in Python. Faremo un ulteriore passo avanti e impareremo come utilizzare una funzione di formattazione per formattare ora e data.
Passo 1) Per prima cosa vedremo un semplice passaggio su come formattare l'anno. È meglio capire con un esempio.
- Abbiamo usato il "funzione strftime” per la formattazione.
- Questa funzione utilizza diversi codice di controllo per dare un output.
- Ogni codice di controllo assomiglia a parametri diversi come anno, mese, giorno della settimana e data [(%y/%Y – anno), (%a/%A- giorno della settimana), (%b/%B- mese), (%d – giorno del mese)] .
- Nel nostro caso, lo è ("%Y") che assomiglia a year, stampa l'anno completo con il secolo (ad esempio, 2018).
Passo 2) Ora se sostituisci ("%Y") con lettere minuscole, ovvero ("%y) ed esegui il codice, l'output mostrerà solo (18) e non (2018). Il secolo dell'anno non verrà visualizzato come mostrato nello screenshot seguente
Passo 3) La funzione Strf può dichiarare separatamente la data, il giorno, il mese e l'anno. Inoltre con piccole modifiche al codice di controllo nella funzione strftime è possibile formattare lo stile del testo.
All'interno della funzione strftime se sostituisci (%a) con la A maiuscola, ovvero (%A) l'output verrà stampato come "Firday" anziché solo come abbreviazione "Fri".
Passo 4) Con l'aiuto della funzione "Strftime" possiamo anche recuperare l'ora, la data del sistema locale o entrambi.
- %C- indica la data e l'ora locale
- %x- indica la data locale
- %X- indica l'ora locale
Nell'output, puoi vedere il risultato come previsto
Passo 5) La "funzione strftime" consente di chiamare l'ora in qualsiasi formato 24 ore o 12 ore.
Semplicemente definendo un codice di controllo come %I/H per ora, % M per minuto, %S per secondo, è possibile chiamare l'ora per diversi formati
12 ore l'ora è dichiarata [print now.strftime(“%I:%M:%S %p)]
24 ore l'ora è dichiarata [print now.strftime(“%H:%M”)]
Ecco il codice completo per convertire datetime in oggetto String.
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
In cosa consiste Timedelta? Python?
Delta temporale in Python è un oggetto che rappresenta la durata. È usato principalmente per calcolare la durata tra due date e orari. È anche usato per recuperare l'oggetto con una data e un orario delta. L'oggetto timedelta supporta operazioni matematiche come addizioni, sottrazioni, moltiplicazioni, divisioni ecc.
Come utilizzare gli oggetti Timedelta
Con Python Con gli oggetti timedelta è possibile stimare il tempo sia nel futuro che nel passato. In altre parole, è un intervallo di tempo per prevedere qualsiasi giorno, data o ora speciale.
Ricorda che questa funzione non serve per stampare l'ora o la data, ma qualcosa per CALCOLARE il futuro o il passato. Vediamo un Python esempio timedelta per capirlo meglio.
Passo 1) Per eseguire gli oggetti Timedelta, è necessario dichiarare prima l'istruzione import e quindi eseguire il codice
- Scrivi l'istruzione di importazione per timedelta
- Ora scrivi il codice per stampare l'oggetto dal delta temporale come mostrato nello screenshot
- Esegui il codice. Il timedelta rappresenta un intervallo di 365 giorni, 8 ore e 15 minuti e stampa lo stesso
Confuso? Il prossimo passaggio aiuterà-
Passo 2) Prendiamo la data e l'ora di oggi per verificare se la nostra dichiarazione di importazione funziona bene. Quando il codice viene eseguito, stampa la data odierna, il che significa che la nostra dichiarazione di importazione funziona bene
Passo 3) Vedremo come possiamo recuperare la data di un anno da adesso tramite oggetti delta. Quando eseguiamo il codice, fornisce l'output previsto.
Passo 4) Un altro esempio di come il delta temporale può essere utilizzato per calcolare la data futura dalla data e dall'ora correnti
Passo 5) Diamo un'occhiata a un esempio più complesso. Vorrei determinare quanti giorni sono passati dal Capodanno. Ecco come procederemo
- Usando today= date.today() otterremo la data di oggi
- Sappiamo che il nuovo anno cade sempre il 1° gennaio, ma l'anno potrebbe essere diverso. Usando nyd=date(today.year,1,1) memorizziamo il nuovo anno nella variabile nyd
- if nyd < today: confronta se la data corrente è maggiore del nuovo anno. In caso affermativo, entra nel ciclo while
- ((oggi-nyd).giorni) fornisce la differenza tra la data corrente e il nuovo anno in GIORNI
L'output mostra che "il Capodanno è già passato 11 giorni fa".
Ecco il codice completo di funzionamento
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 Esempio
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)
Sommario
Per manipolare date e orari in modi semplici e complessi, il modulo datetime fornisce diverse classi o categorie come
- date – Manipola solo la data (mese, giorno, anno)
- time – Ora indipendente dal giorno (Ore, minuti, secondi, microsecondi)
- datetime – Combinazione di ora e data (mese, giorno, anno, ora, secondo, microsecondo)
- timedelta: durata di tempo utilizzata per manipolare le date
- tzinfo— Una classe astratta per gestire i fusi orari
Utilizzo di oggetti datetime
- L'importazione di oggetti datetime prima di eseguire il codice è obbligatoria
- Utilizzo della funzione date.today per stampare data/mese/anno individuali e indicizzare il giorno
- Utilizzando l'oggetto date.time per ottenere il tempo in ore, minuti, secondi e millisecondi
Formattazione del Time-Out con “funzione str f time”
- Utilizzare la "funzione ora str f" per modificare il formato dell'anno
- Stampa giorno, data, mese e anno separatamente,
- Tempo di chiamata per qualsiasi formato 12 ore o 24 ore
Oggetti Timedelta
- Con gli oggetti timedelta, puoi stimare il tempo sia per il futuro che per il passato
- Calcola il totale dei giorni rimasti per il giorno speciale (compleanno) dall'ora corrente
- Calcola il totale dei giorni trascorsi per il giorno speciale (compleanno) dall'ora corrente