Что занчит 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
Проще говоря – некоторые локальные особенности столкнулись с определенной толикой лени и получилось вот так.