🟢 Лёгкий · 1 очк. Стандартная библиотека
Почему формат в time.Parse и time.Format использует конкретную дату "Mon Jan 2 15:04:05 MST 2006"?
A Это дата создания языка Go
B Каждый компонент имеет уникальное числовое значение (1, 2, 3, 4, 5, 6, 7) для однозначного распознавания формата
C Это стандарт ISO 8601
D Случайный выбор разработчиков
Объяснение вопроса

Go использует reference time вместо символов-заполнителей (YYYY-MM-DD). Дата Mon Jan 2 15:04:05 MST 2006 выбрана так, что каждый компонент имеет уникальное значение:

  • Месяц = 1 (January)
  • День = 2
  • Час = 15 (3 PM)
  • Минута = 04
  • Секунда = 05
  • Год = 2006
  • Смещение = -0700 (MST)
// Форматирование:
t := time.Now()
fmt.Println(t.Format("2006-01-02 15:04:05"))
// "2024-03-15 14:30:00"

// Парсинг:
t, err := time.Parse("2006-01-02", "2024-03-15")

// Мнемоника: 1 2 3 4 5 6 7
// Jan 2 15:04:05 2006 -0700

Это решение Go-команды: формат читается как пример готовой даты, а не как абстрактная маска. Неочевидно поначалу, но удобно после привыкания.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.