Ruby Academy · Урок

Разбор и форматирование

strftime и strptime

Урок 2 из 413 шагов

«Разбор и форматирование» — бесплатный урок 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 — локальная установка не требуется.

Все уроки этого курса

  1. Классы времени и даты
  2. Разбор и форматирование
  3. Арифметика времени
  4. Часовые пояса
← Назад к Ruby Academy