Jak obsługiwać daty i godziny w Pythonie za pomocą datetime
Obsługa dat i godzin jest powszechnym zadaniem w programowaniu, a Python udostępnia wbudowany moduł o nazwie datetime
do pracy z datami i godzinami. Ten moduł udostępnia klasy do manipulowania datami, godzinami i przedziałami czasu, ułatwiając wykonywanie arytmetyki dat, formatowanie dat i zarządzanie strefami czasowymi. W tym artykule przyjrzymy się, jak używać modułu datetime
do efektywnej obsługi dat i godzin w Pythonie.
Pierwsze kroki z datetime
Moduł datetime
udostępnia kilka klas, takich jak datetime.date
, datetime.time
, datetime.datetime
, datetime.timedelta
i datetime.tzinfo
. Klasy te umożliwiają pracę z datami, godzinami i przedziałami czasu.
Aby zacząć używać modułu datetime
, należy go zaimportować:
import datetime
Praca z datami
Możesz utworzyć obiekt daty za pomocą klasy date
. Wymaga ona trzech parametrów: rok, miesiąc i dzień.
from datetime import date
# Create a date object
my_date = date(2023, 9, 4)
print(my_date) # Output: 2023-09-04
Można również uzyskać dostęp do poszczególnych składników daty, takich jak rok, miesiąc i dzień:
print(my_date.year) # Output: 2023
print(my_date.month) # Output: 9
print(my_date.day) # Output: 4
Praca z czasem
Klasa time
umożliwia utworzenie obiektu czasu. Wymaga godzin, minut, sekund i mikrosekund (opcjonalnie).
from datetime import time
# Create a time object
my_time = time(14, 30, 45)
print(my_time) # Output: 14:30:45
Podobnie jak w przypadku dat, można uzyskać dostęp do poszczególnych komponentów obiektu czasu:
print(my_time.hour) # Output: 14
print(my_time.minute) # Output: 30
print(my_time.second) # Output: 45
Łączenie daty i godziny za pomocą datetime
Klasa datetime
łączy datę i czas w jednym obiekcie. Możesz utworzyć obiekt datetime
, przekazując rok, miesiąc, dzień, godzinę, minutę, sekundę i mikrosekundę (opcjonalnie).
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
Można uzyskać dostęp do komponentów daty i godziny obiektu datetime
:
print(my_datetime.date()) # Output: 2023-09-04
print(my_datetime.time()) # Output: 14:30:45
Pobieranie aktualnej daty i godziny
Moduł datetime
udostępnia wygodne metody pobierania bieżącej daty, godziny lub obu tych wartości:
# Current date
today = date.today()
print(today) # Output: (current date)
# Current date and time
now = datetime.now()
print(now) # Output: (current date and time)
Arytmetyka daty z timedelta
Klasa timedelta
reprezentuje czas trwania, który jest różnicą między dwiema datami lub godzinami. Umożliwia wykonywanie arytmetyki dat, takiej jak dodawanie lub odejmowanie dni od daty.
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)
Można również obliczyć różnicę między dwiema datami:
# Calculate the difference between two dates
date1 = date(2023, 9, 4)
date2 = date(2023, 9, 11)
difference = date2 - date1
print(difference.days) # Output: 7
Formatowanie dat i godzin
Metoda strftime()
umożliwia formatowanie daty lub godziny do ciągu znaków. Ta metoda przyjmuje kod formatu, aby określić żądany format:
# Format a date object
formatted_date = today.strftime('%B %d, %Y')
print(formatted_date) # Output: September 04, 2023
Do powszechnie stosowanych formatów kodów należą:
%Y
- Rok (np. 2023)%m
– Miesiąc jako liczba dziesiętna uzupełniona zerami (np. 09)%d
– Dzień miesiąca w postaci liczby dziesiętnej uzupełnionej zerami (np. 04)%H
– Godzina (zegar 24-godzinny) jako liczba dziesiętna uzupełniona zerami (np. 14)%M
– Minuta jako liczba dziesiętna uzupełniona zerami (np. 30)%S
– Sekunda jako liczba dziesiętna uzupełniona zerami (np. 45)
Analiza dat z ciągów znaków
Metoda strptime()
umożliwia konwersję ciągu znaków na obiekt datetime
, biorąc pod uwagę format ciągu znaków daty:
# Parse a date from a string
date_str = '2023-09-04'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
print(parsed_date)
Praca ze strefami czasowymi
Moduł datetime
obsługuje obiekty datetime
uwzględniające strefy czasowe, używając biblioteki pytz
. Aby pracować ze strefami czasowymi, musisz zainstalować pytz
:
pip install pytz
Następnie możesz przypisać strefę czasową do obiektu datetime
:
from datetime import datetime
import pytz
# Set timezone to UTC
utc_zone = pytz.utc
now_utc = datetime.now(utc_zone)
print(now_utc)
Wniosek
Moduł datetime
w Pythonie udostępnia potężne narzędzia do obsługi dat i godzin, w tym tworzenie, formatowanie, parsowanie i wykonywanie działań arytmetycznych na obiektach daty i godziny. Niezależnie od tego, czy musisz manipulować datami, pracować ze strefami czasowymi, czy formatować daty i godziny do wyświetlania, moduł datetime
ma wszystko, czego potrzebujesz.