1. Pobieranie bieżącej daty i czasu
Po co to potrzebne?
Jak wiadomo, czas to pieniądz. A w programowaniu to także kontrola, planowanie i automatyzacja. Na przykład, jeśli chcesz uruchomić zadanie o określonej godzinie lub logować zdarzenia, musisz wiedzieć, że zegary tykają, i jak z tym działać.
Podstawy datetime
A więc, wyobraź sobie, że zaczęliśmy pracować z biblioteką datetime
. W przeciwieństwie do projektowania statków kosmicznych, to banalnie proste! Zacznijmy od pobrania aktualnej daty i czasu:
from datetime import datetime
# Pobieranie bieżącej daty i czasu
now = datetime.now()
print("Bieżąca data i czas:", now)
Ten kod mówi "Hej, datetime
, sprawdźmy, ile teraz jest czasu!" I co fajne,
now()
zwraca obiekt datetime
, który zawiera wszystkie informacje o bieżącym momencie w czasie. Tak, jakbyś miał profesora, który zna wszystko od razu.
Czas lokalny i uniwersalny (UTC)
Ah, UTC — uniwersalny czas, który łączy nas wszystkich bez zbędnych stref czasowych. Jeśli chcesz znać dokładny czas na Marsie (no, prawie), to UTC jest dla ciebie. A oto jak go uzyskać:
# Pobieranie bieżącego czasu w formacie UTC
now_utc = datetime.utcnow()
print("Bieżąca data i czas w UTC:", now_utc)
Spytasz, a jaka jest różnica? Czas lokalny uwzględnia twoją strefę czasową, podczas gdy UTC — to czas według Greenwich, niezależny od lokalizacji geograficznej.
Wydobycie elementów daty i czasu
Czasami, potrzebujemy nie całej daty, a jedynie jej części. To jak zamawiać pizzę i brać tylko ser — nie zawsze logiczne, ale czasem konieczne:
# Wydobycie poszczególnych części daty i czasu
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
print(f"Teraz jest {hour}:{minute}:{second} {day}.{month}.{year}")
W ten sposób możemy indywidualnie pracować z elementami daty i czasu, na przykład, by złożyć życzenia komuś z okazji urodzin (ale tylko, jeśli sam o tym przypomni).
Przykłady użycia bieżącej daty i czasu
Co innego, kiedy trzeba zaprogramować zdarzenia, które występują w różnych częściach czasu. Na przykład, stwórzmy najprostszy skrypt, który będzie wszystkich witał w piątek (bo kto nie lubi piątku?).
# Przykład użycia bieżącej daty do codziennego przypomnienia
if now.weekday() == 4: # Piątek
print("Hurra! Dziś piątek, czas odpoczywać!")
else:
print("Jeszcze chwilę, piątek się zbliża.")
Ten kod używa metody weekday()
, która zwraca liczbę od 0 do 6 (gdzie 0 — to poniedziałek, a 6 — niedziela), by sprawdzić, jaki dziś dzień tygodnia i ostrzec o nadchodzącej fali weekendu.
2. Praca z obiektami datetime
Musimy znać nie tylko aktualny czas, ale także jak przechodzić od jednego momentu do innego w operacjach lub porównaniach. Na przykład, jak obliczasz, jak bardzo spóźniłeś się na spotkanie z kolegami?
# Przykład obliczania różnicy w czasie
from datetime import timedelta
# Tworzenie daty w przeszłości
past_date = datetime(2023, 1, 1, 10, 0, 0)
# Obliczanie różnicy między bieżącym czasem a przeszłym
difference = now - past_date
print(f"Od tego pamiętnego dnia minęło {difference.days} dni i {difference.seconds // 3600} godzin.")
Tutaj tworzymy datę w przeszłości i porównujemy z bieżącym czasem. Ile dni minęło od Nowego Roku? Teraz wiesz!
3. Praca ze strefami czasowymi
Do pracy ze strefami czasowymi w datetime
używamy biblioteki pytz
, która pozwala
przekształcać datę i czas w potrzebną strefę czasową.
Przykład użycia pytz
from datetime import datetime
import pytz
# Pobieranie bieżącej daty i czasu w UTC
utc_now = datetime.now(pytz.utc)
print("Bieżąca data i czas (UTC):", utc_now)
# Przekształcenie w inną strefę czasową (na przykład, US/Pacific)
pacific_now = utc_now.astimezone(pytz.timezone("US/Pacific"))
print("Bieżąca data i czas (Pacific Time):", pacific_now)
Rezultat:
Bieżąca data i czas (UTC): 2024-11-04 14:53:27.123456+00:00
Bieżąca data i czas (Pacific Time): 2024-11-04 06:53:27.123456-08:00
GO TO FULL VERSION