Python: data e ora

Spesso nella scienza dei dati abbiamo bisogno di un'analisi basata su valori temporali. Python può gestire i vari formati di data e ora con grazia. Ildatetime la libreria fornisce i metodi e le funzioni necessari per gestire i seguenti scenari.

  • Rappresentazione della data e dell'ora
  • Data e ora Aritmetica
  • Confronto data e ora

Li studieremo uno per uno.

Rappresentazione della data e dell'ora

Una data e le sue varie parti sono rappresentate utilizzando diverse funzioni datetime. Inoltre, ci sono specificatori di formato che svolgono un ruolo nella visualizzazione delle parti alfabetiche di una data come il nome del mese o del giorno della settimana. Il codice seguente mostra la data odierna e varie parti della data.

import datetime

print 'The Date Today is  :', datetime.datetime.today()

date_today = datetime.date.today()
print date_today
print 'This Year   :', date_today.year
print 'This Month    :', date_today.month
print 'Month Name:',date_today.strftime('%B')
print 'This Week Day    :', date_today.day
print 'Week Day Name:',date_today.strftime('%A')

Quando eseguiamo il codice precedente, produce il seguente risultato.

The Date Today is  : 2018-04-22 15:38:35.835000
2018-04-22
This Year   : 2018
This Month    : 4
Month Name: April
This Week Day    : 22
Week Day Name: Sunday

Data e ora Aritmetica

Per i calcoli che coinvolgono le date, memorizziamo le varie date in variabili e applichiamo il relativo operatore matematico a queste variabili.

import datetime 
 
#Capture the First Date
day1 = datetime.date(2018, 2, 12)
print 'day1:', day1.ctime()

# Capture the Second Date
day2 = datetime.date(2017, 8, 18)
print 'day2:', day2.ctime()

# Find the difference between the dates
print 'Number of Days:', day1-day2


date_today  = datetime.date.today() 

# Create a delta of Four Days 
no_of_days = datetime.timedelta(days=4) 

# Use Delta for Past Date
before_four_days = date_today - no_of_days 
print 'Before Four Days:', before_four_days 
 
# Use Delta for future Date
after_four_days = date_today + no_of_days 
print 'After Four Days:', after_four_days

Quando eseguiamo il codice precedente, produce il seguente risultato.

day1: Mon Feb 12 00:00:00 2018
day2: Fri Aug 18 00:00:00 2017
Number of Days: 178 days, 0:00:00
Before Four Days: 2018-04-18
After Four Days: 2018-04-26

Confronto data e ora

La data e l'ora vengono confrontate utilizzando operatori logici. Ma dobbiamo stare attenti nel confrontare le parti giuste delle date tra loro. Negli esempi seguenti prendiamo le date future e passate e le confrontiamo usando la clausola if di python insieme agli operatori logici.

import datetime

date_today  = datetime.date.today() 

print 'Today is: ', date_today
# Create a delta of Four Days 
no_of_days = datetime.timedelta(days=4) 

# Use Delta for Past Date
before_four_days = date_today - no_of_days 
print 'Before Four Days:', before_four_days 

after_four_days =  date_today + no_of_days

date1 = datetime.date(2018,4,4)

print 'date1:',date1

if date1 == before_four_days :
    print 'Same Dates'
if date_today > date1:
    print 'Past Date'
if date1 < after_four_days:
    print 'Future Date'

Quando eseguiamo il codice precedente, produce il seguente risultato.

Today is:  2018-04-22
Before Four Days: 2018-04-18
date1: 2018-04-04
Past Date
Future Date