Конвертер Формата Даты Онлайн
Конвертируйте между синтаксисами форматов дат: strftime, Moment.js, ICU, Go, PHP, Java.
Reference table
| Element | strftime | Moment | ICU | Go |
|---|---|---|---|---|
| 4-digit year | %Y | YYYY | yyyy | 2006 |
| 2-digit year | %y | YY | yy | 06 |
| Month (01-12) | %m | MM | MM | 01 |
| Full month name | %B | MMMM | MMMM | January |
| Abbreviated month name | %b | MMM | MMM | Jan |
| Day of month (01-31) | %d | DD | dd | 02 |
| Day of month, no leading zero | %e | D | d | 2 |
| Hour 24h (00-23) | %H | HH | HH | 15 |
| Hour 12h (01-12) | %I | hh | hh | 03 |
| Minute (00-59) | %M | mm | mm | 04 |
| Second (00-59) | %S | ss | ss | 05 |
| AM/PM | %p | A | a | PM |
| Timezone abbreviation | %Z | z | zzz | MST |
| Timezone offset | %z | ZZ | Z | -0700 |
| Full weekday name | %A | dddd | EEEE | Monday |
| Abbreviated weekday name | %a | ddd | EEE | Mon |
| Day of year (001-366) | %j | DDDD | D | __2 |
Для чего это нужно
Конвертер форматов дат для разработчиков
Все языки
Поддерживает strftime, Moment.js, Day.js, ICU, Go, PHP, Java, .NET, Ruby.
100% приватно
Конвертация происходит в вашем браузере. Никакие данные не отправляются на серверы.
Реальный предпросмотр
Смотрите, как дата будет отображаться с вашим форматом в каждом языке.
Мгновенно
Конвертация в реальном времени по мере ввода. Никакой регистрации и ожидания.
Как это работает
Три шага — никаких сложностей
Введите токен формата
Введите формат даты, например %Y-%m-%d (strftime) или YYYY-MM-DD (Moment.js). Инструмент автоматически определяет диалект.
Мгновенная конвертация
Получите эквивалентный формат во всех поддерживаемых диалектах: strftime, Moment.js, ICU, Go, PHP, Java, .NET.
Предпросмотр с реальной датой
Посмотрите, как текущая дата будет выглядеть с этим форматом в каждом языке.
FAQ
Остались вопросы?
strftime ('string format time') — функция из стандартной библиотеки C, определённая в стандарте C89/ANSI C. Она форматирует структуру tm (время) как текстовую строку с токенами вроде %Y (4-значный год), %m (месяц), %d (день), %H (час 24ч), %M (минуты), %S (секунды). Это источник практически всех систем форматирования дат: Python, Ruby, PHP (date() использует другие токены, но strftime() — те же), bash и многие другие.
Moment.js популяризировал другую нотацию: YYYY (4-значный год), MM (месяц), DD (день), HH (час 24ч), mm (минуты), ss (секунды). Ключевое отличие: регистр имеет значение (MM — месяц, mm — минуты). Эту нотацию приняли Day.js, date-fns, Luxon и большинство современных JavaScript-библиотек. Предложение Temporal для JavaScript (TC39) использует нотацию ICU.
ICU (International Components for Unicode) определяет стандарт CLDR для форматов дат. Используются токены: yyyy (год), MM (месяц), dd (день), HH (час). Это система, применяемая в Java (java.time.format.DateTimeFormatter), Swift (DateFormatter), Kotlin, Android и предложении Temporal для JavaScript. Преимущество ICU — поддержка локализации: паттерн 'd MMMM yyyy' даёт '7 апреля 2026' на русском и 'April 7, 2026' на английском.
Go (Golang) использует конкретную контрольную дату как шаблон: 2 января 2006 года в 15:04:05 в понедельник (что соответствует 01/02 03:04:05PM '06 -0700 MST — легко запоминаемая последовательность). Вместо абстрактных токенов вы описываете формат, показывая, как выглядела бы именно эта дата: '2006-01-02' для год-месяц-день, '15:04:05' для полного времени. Этот подход уникален, хотя поначалу кажется запутанным.
Дата ISO 8601: strftime: %Y-%m-%d, Moment.js: YYYY-MM-DD, Go: 2006-01-02, Java: yyyy-MM-dd. Полная дата и время: strftime: %Y-%m-%dT%H:%M:%S, Moment.js: YYYY-MM-DDTHH:mm:ss, Go: 2006-01-02T15:04:05, Java: yyyy-MM-dd'T'HH:mm:ss. Европейский формат: strftime: %d/%m/%Y, Moment.js: DD/MM/YYYY, Go: 02/01/2006, Java: dd/MM/yyyy.
История форматирования дат в программировании, ISO 8601, локализованное форматирование и работа с часовыми поясами
Стандартизация форматов дат в вычислительной технике исторически была проблематичной. Функция strftime была введена в стандартную библиотеку C (ANSI C, 1989), однако её корни уходят в системы AT&T Unix 1970-х годов. До стандартизации каждая система и язык использовали собственную нотацию, что порождало серьёзную несовместимость. Стандарт ISO 8601 (первая редакция 1988 года, пересмотренный в 2004 и 2019 годах) установил YYYY-MM-DD как универсальный формат для обмена данными, принятый XML, JSON, HTTP и большинством современных API.
Локализация дат добавляет ещё один уровень сложности. Порядок день/месяц/год варьируется по странам: ДД/ММ/ГГГГ в Европе и Латинской Америке, ММ/ДД/ГГГГ в США (что вызывает частую путаницу: 01/02/2026 — это 1 февраля в Европе, но 2 января в США). Системы ICU/CLDR обрабатывают эти различия автоматически: одна и та же функция форматирования выдаёт 'April 7, 2026' на английском, '7 апреля 2026' на русском, '7. April 2026' на немецком или '2026年4月7日' на японском.
Часовые пояса — наиболее сложная часть работы с датами в программном обеспечении. База данных часовых поясов IANA (также называемая базой данных Олсона или tzdata) ведёт исторические и актуальные записи всех часовых поясов мира, включая исторические изменения перехода на летнее время. Многие известные программные ошибки связаны с датами: ошибка Y2K (год 2000), ошибка 2038 года в 32-битных Unix-системах (где временная метка Unix переполнится 19 января 2038 года) и ошибки перехода на летнее время, дважды в год затрагивающие календари и системы бронирования.