Что занчит 2006-01-02 15:04:05 в Golang?

Привет, %username%! Я в последние недели стал сильно больше говнокодить на Golang и во время одной из бесед с коллегой я задался вопросом: почему в Go для форматирования даты используется конкретная дата?

Строка "2006-01-02 15:04:05" не является универсальным форматом для всех языков программирования, а представляет собой уникальный подход к форматированию даты и времени в языке Golang.

Я имею некоторый опыт общения с другими ЯПами и привык к обозначениям %Y/%m/%d для форматирования дат, но тут стало любопытно.

В Golang используется необычный и весьма оригинальный подход к форматированию времени. Вместо специальных символов (как %Y, %m, %d в других языках), Golang использует конкретную эталонную дату - 2 января 2006 года, 15:04:05.

Эта дата выбрана не случайно. Если записать её в американском формате (месяц/день/год), получается последовательность: 1, 2, 3, 4, 5, 6:

  • Месяц: 01 (январь)
  • День: 02
  • Час: 15 (3 часа дня)
  • Минута: 04
  • Секунда: 05
  • Год: 2006

Проще говоря – некоторые локальные особенности столкнулись с определенной толикой лени и получилось вот так.

#golang #funfact #заметкинаполях