Классы времени и даты
Работайте со временем
«Классы времени и даты» — бесплатный урок Ruby Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ruby Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ruby Academy содержит 4 уроков всего.
Класс времени
Встроенный класс Ruby Time представляет момент времени. Time.now возвращает текущие дату и время.
t = Time.now
puts t.class
puts(t.year)Создание конкретного момента времени
Time.new (или Time.local) создаёт момент времени из отдельных компонентов: года, месяца, дня, часа, минуты и секунды.
t = Time.new(2026, 5, 30, 14, 30, 0)
puts t.year
puts t.hour
puts t.minЧтение компонентов времени
Время предоставляет доступ к каждой части через такие методы, как year, month, day, hour, min, sec и wday (день недели, где 0 = воскресенье).
t = Time.new(2026, 5, 30)
puts(t.month)
puts(t.day)
puts(t.wday)Секунды эпохи
Внутренне момент времени представляет собой число секунд с начала эпохи Unix (1 января 1970 года по UTC). Используйте to_i, чтобы получить это число, и Time.at, чтобы преобразовать его обратно.
secs = Time.new(2026, 1, 1, 0, 0, 0, '+00:00').to_i
puts secs
puts(Time.at(secs).utc.year)Класс даты
Для работы с календарными датами без времени подключите библиотеку date и используйте класс Date.
require 'date'
d = Date.new(2026, 5, 30)
puts d.class
puts(d.to_s)Сегодня и сейчас
Date.today возвращает текущую календарную дату. DateTime.now также включает время суток.
require 'date'
puts(Date.today.class)
puts(DateTime.now.class)День недели
Date предоставляет понятные предикаты и названия дней недели.
require 'date'
d = Date.new(2026, 5, 30)
puts(d.saturday?)
puts(d.wday)Date, Time и DateTime
Выберите подходящий класс:
Date— только календарная дата, без времени сутокTime— точный момент времени с часовым поясом, работает быстроDateTime— дата и время, часть библиотеки для работы с датами
В современном коде Ruby обычно предпочитают Time.
require 'date'
puts(Date.new(2026, 5, 30))
puts(Time.new(2026, 5, 30, 9, 0).hour)Високосные годы
Date.leap? сообщает, является ли год високосным, а от этого зависит продолжительность февраля.
require 'date'
puts(Date.leap?(2024))
puts(Date.leap?(2026))UTC и местное время
Значение Time может находиться в местном часовом поясе или в UTC. utc преобразует его в UTC, а localtime — обратно в местное время. utc? проверяет текущий режим.
t = Time.new(2026, 5, 30, 12, 0, 0, '+03:00')
puts(t.utc.hour)
puts(t.utc?)Сравнение моментов времени
Объекты Time и Date можно сравнивать с помощью <, > и ==, поэтому их можно сортировать или напрямую проверять их порядок.
a = Time.new(2026, 1, 1)
b = Time.new(2026, 6, 1)
puts(a < b)
puts([b, a].min.month)Быстрая проверка
Какой класс представляет календарную дату без компонента времени суток?
Повторение: классы Time и Date
Вы изучили основные типы для работы с датами и временем:
Time.now/Time.newдля представления моментов времени- Компоненты: год, месяц, день, час, минута, секунда, день недели
- Секунды эпохи с помощью
to_iиTime.at Date/DateTimeиз библиотеки для работы с датами- UTC и местное время, сравнение и високосные годы
require 'date'
puts(Date.today.year)Часто задаваемые вопросы
Урок «Классы времени и даты» бесплатный?
Да — полный текст урока «Классы времени и даты» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ruby Academy, подпишись на CoddyKit PRO. Курс Ruby Academy содержит 4 уроков всего.
Чему я научусь в уроке «Классы времени и даты»?
Работайте со временем Ты практикуешь Ruby Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ruby Academy?
Предыдущий опыт не требуется. Ruby Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Классы времени и даты»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ruby Academy?
Да. Каждый урок Ruby Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Классы времени и даты
- Разбор и форматирование
- Арифметика времени
- Часовые пояса