Sådan håndteres datoer og tidspunkter i Python med datetime

Håndtering af datoer og klokkeslæt er en almindelig opgave i programmering, og Python har et indbygget modul kaldet datetime til at arbejde med datoer og klokkeslæt. Dette modul giver klasser til at manipulere datoer, klokkeslæt og tidsintervaller, hvilket gør det nemmere at udføre datoregning, formatere datoer og administrere tidszoner. I denne artikel vil vi undersøge, hvordan du bruger datetime-modulet til at håndtere datoer og tidspunkter effektivt i Python.

Kom godt i gang med datetime

datetime modulet giver flere klasser, såsom datetime.date, datetime.time, datetime.datetime, datetime. timedelta og datetime.tzinfo. Disse klasser giver os mulighed for at arbejde med datoer, tidspunkter og tidsintervaller.

For at begynde at bruge datetime modulet skal du importere det:

import datetime

Arbejde med datoer

Du kan oprette et datoobjekt ved hjælp af klassen date. Det kræver tre parametre: å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å adgang til individuelle komponenter af datoen, såsom år, måned og dag:

print(my_date.year)   # Output: 2023
print(my_date.month)  # Output: 9
print(my_date.day)    # Output: 4

Arbejde med Times

Klassen time giver dig mulighed for at oprette et tidsobjekt. Det kræver timer, minutter, sekunder og mikrosekunder (valgfrit).

from datetime import time

# Create a time object
my_time = time(14, 30, 45)
print(my_time)  # Output: 14:30:45

I lighed med datoer kan du få adgang til individuelle komponenter af tidsobjektet:

print(my_time.hour)   # Output: 14
print(my_time.minute) # Output: 30
print(my_time.second) # Output: 45

Kombination af dato og klokkeslæt med datetime

Klassen datetime kombinerer både dato og tid til et enkelt objekt. Du kan oprette et datetime objekt ved at overføre år, måned, dag, time, minut, sekund og mikrosekund (valgfrit).

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å adgang til både dato- og tidskomponenterne for et datetime-objekt:

print(my_datetime.date())  # Output: 2023-09-04
print(my_datetime.time())  # Output: 14:30:45

Hent den aktuelle dato og tid

datetime modulet giver praktiske metoder til at få den aktuelle dato, klokkeslæt eller begge dele:

# Current date
today = date.today()
print(today)  # Output: (current date)

# Current date and time
now = datetime.now()
print(now)  # Output: (current date and time)

Datoregning med tidsdelta

Klassen timedelta repræsenterer en varighed, som er forskellen mellem to datoer eller tidspunkter. Det giver dig mulighed for at udføre datoregning, såsom at tilføje eller trække dage 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 forskellen mellem 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 af datoer og tidspunkter

Metoden strftime() giver dig mulighed for at formatere en dato eller et klokkeslæt til en streng. Denne metode kræver en formatkode for at angive det ønskede format:

# Format a date object
formatted_date = today.strftime('%B %d, %Y')
print(formatted_date)  # Output: September 04, 2023

Almindelige formatkoder omfatter:

  • %Y - År (f.eks. 2023)
  • %m - Måned som et nulpolstret decimaltal (f.eks. 09)
  • %d - Dag i måneden som et nulpolstret decimaltal (f.eks. 04)
  • %H - Time (24-timers ur) som et nulpolstret decimaltal (f.eks. 14)
  • %M - Minut som et nulpolstret decimaltal (f.eks. 30)
  • %S - Anden som et nulpolstret decimaltal (f.eks. 45)

Parsing datoer fra strenge

strptime()-metoden giver dig mulighed for at konvertere en streng til et datetime-objekt, givet formatet på datostrengen:

# Parse a date from a string
date_str = '2023-09-04'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
print(parsed_date)

Arbejde med tidszoner

datetime-modulet understøtter tidszone-bevidste datetime-objekter ved hjælp af pytz-biblioteket. For at arbejde med tidszoner skal du installere pytz:

pip install pytz

Derefter kan du tildele en tidszone 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)

Konklusion

datetime-modulet i Python giver kraftfulde værktøjer til håndtering af datoer og klokkeslæt, herunder oprettelse, formatering, parsing og udførelse af aritmetik med dato- og tidsobjekter. Uanset om du har brug for at manipulere datoer, arbejde med tidszoner eller formatere datoer og klokkeslæt til visning, har datetime modulet dig dækket.