Python DataOra, OraDelta, Strftime(Formato) con esempi

In Python, data, ora e dataora Le classi forniscono una serie di funzioni per gestire date, orari e intervalli di tempo. Data e dataora in Python sono gli oggetti, quindi quando li manipoli, stai effettivamente manipolando oggetti e non stringhe o timestamp. Ogni volta che manipoli date o ore, devi importare la funzione datetime.

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.

Utilizza la classe Data e DateTime

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.

Utilizza la classe Data e DateTime

Passo 3 ) Successivamente, stampiamo la data ed eseguiamo il codice.

Utilizza la classe Data e DateTime

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

Stampa la data utilizzando date.today()

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.

Stampa la data utilizzando date.today()

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.

Python Data e ora correnti

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.

Python Data e ora correnti

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ì".

Python Data e ora correnti

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.

Formatta l'output di data e ora con Strftime()

  • 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

Formatta l'output di data e ora con Strftime()

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.

Formatta l'output di data e ora con Strftime()

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".

Formatta l'output di data e ora con Strftime()

Passo 4) Con l'aiuto della funzione "Strftime" possiamo anche recuperare l'ora, la data del sistema locale o entrambi.

  1. %C- indica la data e l'ora locale
  2. %x- indica la data locale
  3. %X- indica l'ora locale

Formatta l'output di data e ora con Strftime()

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.

Formatta l'output di data e ora con Strftime()

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

Oggetti Timedelta

  1. Scrivi l'istruzione di importazione per timedelta
  2. Ora scrivi il codice per stampare l'oggetto dal delta temporale come mostrato nello screenshot
  3. 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

Oggetti Timedelta

Passo 3) Vedremo come possiamo recuperare la data di un anno da adesso tramite oggetti delta. Quando eseguiamo il codice, fornisce l'output previsto.

Oggetti Timedelta

Passo 4) Un altro esempio di come il delta temporale può essere utilizzato per calcolare la data futura dalla data e dall'ora correnti

Oggetti Timedelta

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

Oggetti Timedelta

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