Python Datetime: praca z datami i godzinami
Dowiedz się, jak obsługiwać daty, godziny, strefy czasowe i obliczenia w Pythonie. Opanuj formatowanie, analizowanie i arytmetykę przy użyciu funkcji datetime i timedelta.
Przegląd
Obsługa dat i godzin jest notorycznym wyzwaniem w tworzeniu oprogramowania ze względu na lata przestępne, zmiany czasu letniego i różne formaty stref czasowych. Python rozwiązuje te problemy dzięki wbudowanemu modułowi „datetime”. Moduł ten udostępnia solidny zestaw klas obiektów — takich jak „data”, „godzina”, „datagodzina” i „strefa czasowa” – które w przejrzysty sposób reprezentują dane tymczasowe i manipulują nimi, dzięki czemu obliczenia dat są proste.
Jednym z najczęstszych zadań jest konwertowanie dat na ciągi znaków (formatowanie) i ciągów znaków na daty (parsowanie). Python używa w tym celu dwóch głównych metod: `.strftime()` (format ciągu znaków czasu) konwertuje obiekt typu datetime na czytelny ciąg znaków przy użyciu kodów formatujących (takich jak `%Y` dla roku, `%m` dla miesiąca i `%d` dla dnia). I odwrotnie, funkcja `datetime.strptime()` (czas analizy łańcucha znaków) analizuje wejściowy surowy ciąg znaków w obiekcie typu datetime w oparciu o pasujący szablon formatu, co jest istotne podczas odczytywania dzienników lub danych wejściowych API.
Wykonywanie obliczeń dat jest również w pełni obsługiwane przy użyciu obiektu `timedelta`. „timedelta” oznacza czas (np. 7 dni, 4 godziny). Możesz dodać lub odjąć „timedelta” od „datetime”, aby obliczyć przeszłe lub przyszłe daty (np. określić datę wygaśnięcia). Podczas pracy z wieloma strefami czasowymi użycie obiektów uwzględniających strefę czasową (takich jak `zoneinfo` lub `timezone.utc`) ma kluczowe znaczenie, aby zapewnić dokładność porównań dat w różnych lokalizacjach serwerów.
Dane wyjściowe kodu i wykonania
Analizowanie ciągów znaków w obiektach datetime i obliczanie przyszłych terminów za pomocą timedelta.
from datetime import datetime, timedelta
# Define a specific fixed base date and time (for deterministic runs)
base_date = datetime(2026, 5, 25, 23, 45, 50)
print(f"Base Date/Time: {base_date}")
# Format datetime as string
formatted = base_date.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted String: {formatted}")
# Parse string to datetime
date_str = "2026-12-25"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
print(f"Parsed Date: {parsed_date}")
# Date arithmetic with timedelta
ten_days_later = base_date + timedelta(days=10)
print(f"Date 10 days later: {ten_days_later.strftime('%Y-%m-%d')}")Base Date/Time: 2026-05-25 23:45:50
Formatted String: 2026-05-25 23:45:50
Parsed Date: 2026-12-25 00:00:00
Date 10 days later: 2026-06-04Wdrażanie krok po kroku
- Obliczanie daty wygaśnięcia wersji próbnej i dat rozliczeń
- Analizowanie ciągów sygnatur czasowych w dziennikach dostępu do serwera
- Planowanie automatycznych zadań cron lub raportów cyklicznych
Często zadawane pytania
Co to jest naiwny i świadomy obiekt datetime?
Naiwny obiekt datetime nie zawiera informacji o strefie czasowej, natomiast świadomy obiekt datetime zawiera przesunięcia stref czasowych, dzięki czemu jest bezpieczny dla obliczeń czasu międzynarodowego.
Jak obliczyć różnicę między dwiema datami?
Odejmowanie jednego obiektu datetime od innego zwraca obiekt timedelta reprezentujący dokładny czas trwania między nimi.
Powiązane tematy
Odkryj moc wbudowanego modułu matematycznego Pythona. Dowiedz się o funkcjach trygonometrycznych, logarytmach, metodach zaokrąglania i stałych.
Parsowanie Pythona JSONDowiedz się, jak czytać, pisać i analizować dane JSON w języku Python. Opanuj json.loads, json.dumps i dostosuj kodery/dekodery JSON.
Polecane zasoby Pythona
Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.
Jak przeanalizować ciąg znaków na datę i godzinę w Pythonie
Dowiedz się, jak konwertować ciągi znaków na obiekty typu datetime w języku Python. Opanuj metodę strptime, analizuj ciągi dat, obsługuj strefy czasowe i zapobiegaj błędom formatu.
Ściągawka dotycząca formatowania DateTime w języku Python
Dowiedz się, jak analizować i formatować daty i godziny w Pythonie przy użyciu funkcji datetime, strftime i strptime.
Python kontra JavaScript: który język programowania jest najlepszy?
Kompleksowe porównanie Pythona i JavaScript. Poznaj różnice w składni, wydajność, przypadki użycia (backend vs frontend) i przykłady kodowania.