Разбор и форматирование
strftime и strptime
«Разбор и форматирование» — бесплатный урок Ruby Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ruby Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ruby Academy содержит 4 уроков всего.
Форматирование с помощью strftime
strftime преобразует Time или Date в отформатированную строку с помощью директив форматирования, начинающихся с %.
t = Time.new(2026, 5, 30, 14, 5, 9)
puts(t.strftime('%Y-%m-%d'))
puts(t.strftime('%H:%M:%S'))Распространённые директивы для дат
Полезные директивы для дат:
%Y— год из 4 цифр,%y— из 2 цифр%m— номер месяца,%B— полное название месяца%d— день месяца,%j— день года
t = Time.new(2026, 5, 30)
puts(t.strftime('%B %d, %Y'))
puts(t.strftime('%y/%m/%d'))Распространённые директивы для времени
Полезные директивы для времени на часах:
%H— 24-часовой формат,%I— 12-часовой%M— минуты,%S— секунды%p— AM/PM
t = Time.new(2026, 5, 30, 14, 30)
puts(t.strftime('%I:%M %p'))
puts(t.strftime('%H:%M'))Дни недели и названия
%A — полное название дня недели, %a — сокращённое. %b — сокращённое название месяца.
t = Time.new(2026, 5, 30)
puts(t.strftime('%A'))
puts(t.strftime('%a %b %d'))Заполнение и флаги
Вставляйте флаги между % и директивой: - убирает заполнение, 0 добавляет нули, _ добавляет пробелы.
t = Time.new(2026, 5, 5, 9, 0)
puts(t.strftime('%-d/%-m'))
puts(t.strftime('%H:%M'))Вывод в формате ISO 8601
Для совместимых между системами временных меток используйте iso8601 или шаблон %FT%T%z. ISO 8601 — стандарт для API.
require 'time'
t = Time.new(2026, 5, 30, 14, 0, 0, '+00:00')
puts(t.utc.iso8601)Разбор с помощью Date.parse
Date.parse распознаёт множество распространённых форматов строк с датами и предполагает их структуру. Это удобно, но нестрого.
require 'date'
puts(Date.parse('2026-05-30'))
puts(Date.parse('30 May 2026'))Разбор с помощью Time.parse
Подключите time, чтобы добавить Time.parse, который распознаёт полные временные метки, включая время на часах.
require 'time'
t = Time.parse('2026-05-30 14:30:00')
puts(t.hour)
puts(t.min)Строгий разбор с помощью strptime
Если точный формат известен, используйте strptime. Он использует те же директивы, что и strftime, и завершается ошибкой при несовпадении входных данных, что безопаснее.
require 'date'
d = Date.strptime('30/05/2026', '%d/%m/%Y')
puts(d.year)
puts(d.month)strptime для значений Time
Time.strptime разбирает временную метку с известным форматом и преобразует её в значение Time.
require 'time'
t = Time.strptime('2026-05-30 14:05', '%Y-%m-%d %H:%M')
puts(t.hour)
puts(t.min)parse и strptime
Практическое правило:
- Используйте
parseдля гибкого текста, введённого человеком - Используйте
strptime, когда формат фиксирован и Вы хотите отклонять любые другие варианты
require 'date'
puts(Date.parse('May 30 2026').iso8601)
puts(Date.strptime('2026-05-30', '%Y-%m-%d').iso8601)Быстрая проверка
Какая директива создаёт дополненное нулями значение в 24-часовом формате в strftime?
Повторение: разбор и форматирование
Вы умеете преобразовывать строки в даты и даты в строки:
strftimeформатирует данные с помощью директив%%Y %m %d %H %M %S %A %Bи флагиparseработает гибко, аstrptime— строго- Используйте
iso8601для вывода, удобного для API
require 'date'
puts(Date.strptime('2026-05-30', '%Y-%m-%d').strftime('%A, %B %-d'))Изучай Ruby с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 29
- Уроки
- 109
Часто задаваемые вопросы
Урок «Разбор и форматирование» бесплатный?
Да — полный текст урока «Разбор и форматирование» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ruby Academy, подпишись на CoddyKit PRO. Курс Ruby Academy содержит 4 уроков всего.
Чему я научусь в уроке «Разбор и форматирование»?
strftime и strptime Ты практикуешь Ruby Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ruby Academy?
Предыдущий опыт не требуется. Ruby Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Разбор и форматирование»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ruby Academy?
Да. Каждый урок Ruby Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Классы времени и даты
- Разбор и форматирование
- Арифметика времени
- Часовые пояса