CodeGym /Kurs Javy /Python SELF PL /Użycie modułu datetime

Użycie modułu datetime

Python SELF PL
Poziom 39 , Lekcja 1
Dostępny

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:

Python

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ć:

Python

# 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:

Python

# 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?).

Python

# 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?

Python

# 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

Python

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
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION