Klasy czasu i daty
Praca z czasem
Klasy czasu i daty to bezpłatna lekcja Ruby Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ruby Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Klasa Time
Wbudowana w Ruby klasa Time reprezentuje konkretny moment. Time.now zwraca bieżący czas wraz z datą i godziną.
t = Time.now
puts t.class
puts(t.year)Tworzenie określonego czasu
Time.new (lub Time.local) tworzy obiekt czasu na podstawie jego części: roku, miesiąca, dnia, godziny, minuty i sekundy.
t = Time.new(2026, 5, 30, 14, 30, 0)
puts t.year
puts t.hour
puts t.minOdczytywanie składników czasu
Klasa Time udostępnia poszczególne składniki za pomocą metod takich jak year, month, day, hour, min, sec i wday (dzień tygodnia, 0 = niedziela).
t = Time.new(2026, 5, 30)
puts(t.month)
puts(t.day)
puts(t.wday)Sekundy epoki
Wewnętrznie obiekt Time reprezentuje liczbę sekund od epoki uniksowej (1 stycznia 1970 roku UTC). Za pomocą to_i można uzyskać tę wartość, a za pomocą Time.at przekonwertować ją z powrotem.
secs = Time.new(2026, 1, 1, 0, 0, 0, '+00:00').to_i
puts secs
puts(Time.at(secs).utc.year)Klasa Date
Do operacji na kalendarzu bez uwzględniania godziny należy załadować bibliotekę date i użyć klasy Date.
require 'date'
d = Date.new(2026, 5, 30)
puts d.class
puts(d.to_s)Dzisiaj i teraz
Date.today zwraca bieżącą datę kalendarzową. DateTime.now zawiera również bieżącą porę dnia.
require 'date'
puts(Date.today.class)
puts(DateTime.now.class)Dzień tygodnia
Date udostępnia czytelne predykaty i nazwy dni tygodnia.
require 'date'
d = Date.new(2026, 5, 30)
puts(d.saturday?)
puts(d.wday)Date a Time i DateTime
Należy wybrać właściwą klasę:
Datetylko data kalendarzowa, bez godzinyTimedokładny moment z informacją o strefie czasowej, szybka w działaniuDateTimedata wraz z godziną, część biblioteki date
W nowoczesnym kodzie Ruby zwykle preferuje się Time.
require 'date'
puts(Date.new(2026, 5, 30))
puts(Time.new(2026, 5, 30, 9, 0).hour)Lata przestępne
Date.leap? informuje, czy dany rok jest przestępny, co wpływa na długość lutego.
require 'date'
puts(Date.leap?(2024))
puts(Date.leap?(2026))UTC i czas lokalny
Obiekt Time może działać w lokalnej strefie czasowej lub w UTC. utc konwertuje czas na UTC, a localtime z powrotem na czas lokalny. utc? sprawdza bieżący tryb.
t = Time.new(2026, 5, 30, 12, 0, 0, '+03:00')
puts(t.utc.hour)
puts(t.utc?)Porównywanie obiektów Time
Obiekty Time i Date można porównywać za pomocą operatorów <, > i ==, dzięki czemu można je bezpośrednio sortować lub sprawdzać ich kolejność.
a = Time.new(2026, 1, 1)
b = Time.new(2026, 6, 1)
puts(a < b)
puts([b, a].min.month)Szybkie sprawdzenie
Która klasa reprezentuje datę kalendarzową bez składnika określającego porę dnia?
Podsumowanie: klasy Time i Date
Poznali Państwo podstawowe typy daty i czasu:
Time.now/Time.newdo reprezentowania momentów- Składniki: rok, miesiąc, dzień, godzina, min, sek, wday
- Sekundy od epoki za pomocą
to_iiTime.at Date/DateTimez biblioteki date- UTC i czas lokalny, porównywanie oraz lata przestępne
require 'date'
puts(Date.today.year)Często zadawane pytania
Czy lekcja „Klasy czasu i daty” jest bezpłatna?
Tak — pełny tekst „Klasy czasu i daty” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ruby Academy, przejdź na CoddyKit PRO. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Klasy czasu i daty”?
Praca z czasem Ćwiczysz Ruby Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Ruby Academy?
Nie wymagamy żadnego doświadczenia. Ruby Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Klasy czasu i daty”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Ruby Academy?
Tak. Każda lekcja Ruby Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Klasy czasu i daty
- Parsowanie i formatowanie
- Działania arytmetyczne na czasie
- Strefy czasowe