Go:
Перетворення дати в рядок
Як зробити:
У Go пакет time
надає функціональні можливості для роботи з датами та часом, зокрема форматування об’єкта time.Time
у рядок. Метод Format
типу time.Time
використовується для цієї мети, де ви вказуєте рядок шаблону відповідно до референтного часу “Mon Jan 2 15:04:05 MST 2006”.
Приклад:
package main
import (
"fmt"
"time"
)
func main() {
currentTime := time.Now() // отримує поточну дату та час
fmt.Println("Current Time:", currentTime)
// Форматування поточного часу в форматі дд-мм-рррр
formattedDate := currentTime.Format("02-01-2006")
fmt.Println("Formatted Date:", formattedDate)
// Форматування поточного часу детальніше
detailedFormat := currentTime.Format("Mon, 02 Jan 2006 15:04:05 MST")
fmt.Println("Detailed Formatted Date:", detailedFormat)
}
Приклад виводу:
Current Time: 2023-04-12 11:45:20.312457 +0000 UTC
Formatted Date: 12-04-2023
Detailed Formatted Date: Wed, 12 Apr 2023 11:45:20 UTC
Вивід може варіюватися залежно від поточної дати та часу, коли програму запущено.
Поглиблено:
У контексті Go, маніпуляції з датою та часом, включаючи форматування, переважно обробляються пакетом time
. Підхід до форматування дат у Go, визначений методом Format
із використанням конкретного рядка шаблону, є унікальним у порівнянні з багатьма іншими мовами програмування, що можуть використовувати прості специфікатори формату, як-от %Y
для 4-значного року. Шлях Go вимагає від розробників пам’ятати конкретний референтний час: Mon Jan 2 15:04:05 MST 2006, оскільки він виступає як шаблон для форматування або парсингу дат.
Цей метод, хоча спочатку і може здатися неінтуїтивним для розробників, знайомих із функціями форматування подібними до strftime, був розроблений для чіткості та щоб уникнути плутанини залежних від локалі форматів. Одного разу звикнувши до нього, багато хто вважає, що цей підхід знижує помилки та покращує читабельність коду.
Більше того, підхід стандартної бібліотеки Go означає, що для більшості загальних випадків використання сторонні бібліотеки непотрібні. Це спрощує управління залежностями та забезпечує послідовну поведінку в різних проектах. Однак, працюючи з більш складними перетвореннями часових зон або розрахунками повторюваних дат, розробникам може знадобитися розглянути додаткові пакети, як-от github.com/rickar/cal
для розрахунків свят або github.com/golang/time
для більш тонкого маніпулювання часом, ніж пропонує стандартний пакет time
.