Hvordan håndtere datoer og klokkeslett i Python med datetime
Håndtering av datoer og klokkeslett er en vanlig oppgave i programmering, og Python har en innebygd modul kalt datetime
for å jobbe med datoer og klokkeslett. Denne modulen gir klasser for å manipulere datoer, klokkeslett og tidsintervaller, noe som gjør det enklere å utføre datoregning, formatere datoer og administrere tidssoner. I denne artikkelen skal vi utforske hvordan du bruker datetime
-modulen til å håndtere datoer og klokkeslett effektivt i Python.
Komme i gang med datetime
datetime
-modulen gir flere klasser, for eksempel datetime.date
, datetime.time
, datetime.datetime
, datetime. timedelta
, og datetime.tzinfo
. Disse timene lar oss jobbe med datoer, klokkeslett og tidsintervaller.
For å begynne å bruke modulen datetime
må du importere den:
import datetime
Arbeid med datoer
Du kan opprette et datoobjekt ved å bruke date
-klassen. Det krever tre parametere: år, måned og dag.
from datetime import date
# Create a date object
my_date = date(2023, 9, 4)
print(my_date) # Output: 2023-09-04
Du kan også få tilgang til individuelle komponenter av datoen, for eksempel år, måned og dag:
print(my_date.year) # Output: 2023
print(my_date.month) # Output: 9
print(my_date.day) # Output: 4
Arbeid med Times
Klassen time
lar deg lage et tidsobjekt. Det krever timer, minutter, sekunder og mikrosekunder (valgfritt).
from datetime import time
# Create a time object
my_time = time(14, 30, 45)
print(my_time) # Output: 14:30:45
I likhet med datoer kan du få tilgang til individuelle komponenter av tidsobjektet:
print(my_time.hour) # Output: 14
print(my_time.minute) # Output: 30
print(my_time.second) # Output: 45
Kombinere dato og klokkeslett med datetime
Klassen datetime
kombinerer både dato og tid til ett enkelt objekt. Du kan opprette et datetime
-objekt ved å sende år, måned, dag, time, minutt, sekund og mikrosekund (valgfritt).
from datetime import datetime
# Create a datetime object
my_datetime = datetime(2023, 9, 4, 14, 30, 45)
print(my_datetime) # Output: 2023-09-04 14:30:45
Du kan få tilgang til både dato- og klokkeslettkomponentene til et datetime
-objekt:
print(my_datetime.date()) # Output: 2023-09-04
print(my_datetime.time()) # Output: 14:30:45
Få gjeldende dato og klokkeslett
datetime
-modulen gir praktiske metoder for å få gjeldende dato, klokkeslett eller begge deler:
# Current date
today = date.today()
print(today) # Output: (current date)
# Current date and time
now = datetime.now()
print(now) # Output: (current date and time)
Dato Aritmetikk med tidsdelta
Klassen timedelta
representerer en varighet, som er forskjellen mellom to datoer eller klokkeslett. Den lar deg utføre datoregning, for eksempel å legge til eller trekke fra dager fra en dato.
from datetime import timedelta
# Create a timedelta object
delta = timedelta(days=7)
# Add 7 days to the current date
future_date = today + delta
print(future_date)
Du kan også beregne forskjellen mellom to datoer:
# Calculate the difference between two dates
date1 = date(2023, 9, 4)
date2 = date(2023, 9, 11)
difference = date2 - date1
print(difference.days) # Output: 7
Formatering av datoer og klokkeslett
strftime()
-metoden lar deg formatere en dato eller et klokkeslett til en streng. Denne metoden tar en formatkode for å spesifisere ønsket format:
# Format a date object
formatted_date = today.strftime('%B %d, %Y')
print(formatted_date) # Output: September 04, 2023
Vanlige formatkoder inkluderer:
%Y
– år (f.eks. 2023)%m
– Måned som et null-polstret desimaltall (f.eks. 09)%d
– Dag i måneden som et null-polstret desimaltall (f.eks. 04)%H
- Time (24-timers klokke) som et nullpolstret desimaltall (f.eks. 14)%M
- Minutt som et null-polstret desimaltall (f.eks. 30)%S
– Second som et null-polstret desimaltall (f.eks. 45)
Parsing datoer fra strenger
strptime()
-metoden lar deg konvertere en streng til et datetime
-objekt, gitt formatet til datostrengen:
# Parse a date from a string
date_str = '2023-09-04'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
print(parsed_date)
Arbeid med tidssoner
datetime
-modulen støtter tidssonebevisste datetime
-objekter som bruker pytz
-biblioteket. For å jobbe med tidssoner må du installere pytz
:
pip install pytz
Deretter kan du tilordne en tidssone til et datetime
-objekt:
from datetime import datetime
import pytz
# Set timezone to UTC
utc_zone = pytz.utc
now_utc = datetime.now(utc_zone)
print(now_utc)
Konklusjon
datetime
-modulen i Python gir kraftige verktøy for håndtering av datoer og klokkeslett, inkludert å lage, formatere, analysere og utføre aritmetikk med dato- og klokkeslettobjekter. Enten du trenger å manipulere datoer, jobbe med tidssoner eller formatere datoer og klokkeslett for visning, har datetime
-modulen deg dekket.