Пакет Rtime -- обёртка для time.Time, предназначенная для форматирования дат на русском языке. Расширяет функцию Format, добавляя дополнительные плейсхолдеры.
Создание
t := rtime.Now()
t := rtime.Date(2023, 03, 1, 02, 48, 05, 0, time.UTC)
t := rtime.RTime{time.Now()}
Форматирование
t.Format(rtime.GOST2016Word) // 1 марта 2023 г.
t.Format(rtime.GOST2016Numeric) // 01.03.2023
t.Format("2 января 2006 г., понедельник") // 1 марта 2023 г., среда
t.Format("ПН/Mon, 2 Янв/Jan 2006") // "СР/Wed, 1 Мар/Mar 2023
Плейсхолдер | Значения |
---|---|
Январь |
Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь |
январь |
январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь |
Янв |
Янв Фев Мар Апр Май Июнь Июль Авг Сен Окт Ноя Дек |
янв |
янв фев мар апр май июнь июль авг сен окт ноя дек |
Января |
Января Февраля Марта Апреля Мая Июня Июля Августа Сентября Октября Ноября Декабря |
января |
января февраля марта апреля мая июня июля августа сентября октября ноября декабря |
Понедельник |
Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье |
понедельник |
понедельник вторник среда четверг пятница суббота воскресенье |
ПН |
ПН ВТ СР ЧТ ПТ СБ ВС |
пн |
пн вт ср чт пт сб вс |
При необходимости можно заменить сокращённые имена дней недели и месяцев на необходимые, например:
_ = rtime.SetWeekDayLowerNames([]string{
"пон",
"вто",
"сре",
"чет",
"пят",
"суб",
"вос",
})
t := rtime.Date(2023, 03, 1, 02, 48, 05, 0, time.UTC)
t.Format("пн, 01 января 2006") // сре, 03 марта 2023