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.