Розбір дати з рядка

Go:
Розбір дати з рядка

Як це зробити:

Go надає надійну підтримку для розбору дат та часу через пакет time. Ключем є розуміння формату дати-зразка Go: Mon Jan 2 15:04:05 MST 2006, який ви використовуєте, щоб повідомити Go, як інтерпретувати вхідний рядок. Ось швидкий приклад для початку:

package main

import (
	"fmt"
	"time"
)

func main() {
	// Приклад рядка з датою
	dateStr := "2023-04-12 14:45:00"
	
	// Визначення шаблону/формату вхідного рядка з датою
	// Цей шаблон повідомляє Go очікувати рік, за ним місяць, 
	// потім день, годину, хвилину та, нарешті, секунду
	layout := "2006-01-02 15:04:05"
	
	// Розбір рядка з датою відповідно до шаблону
	parsedDate, err := time.Parse(layout, dateStr)
	if err != nil {
		fmt.Println("Помилка при розборі дати:", err)
		return
	}
	
	// Виведення розібраної дати
	fmt.Println("Розібрана дата:", parsedDate)
}

Коли ви запустите цей код, ви отримаєте:

Розібрана дата: 2023-04-12 14:45:00 +0000 UTC

Зверніть увагу, як рядок layout використовує значення дати-зразка для вказівки формату вхідного рядка. Налаштуйте layout так, щоб він відповідав формату ваших вхідних дат.

Поглиблений огляд

Дизайн розбору дати та часу в Go є унікальним, використовуючи конкретну дату-зразок (Mon Jan 2 15:04:05 MST 2006). Цей підхід, замість використання більш традиційних позначень форматів (як YYYY для року), був обраний заради читабельності та простоти використання, виходячи з більш прикладного формату.

Хоча це може спочатку видатись незвичним для програмістів, звиклих до інших мов, багато хто вважає це більш інтуітивно зрозумілим після короткого періоду адаптації. Для додатків, які вимагають більш складної маніпуляції з датами або форматів, які не підтримуються безпосередньо пакетом time в Go, сторонні бібліотеки, такі як github.com/jinzhu/now, можуть пропонувати додаткові функції. Однак для більшості стандартних додатків вбудовані можливості Go є надійними, продуктивними і ідіоматичними, втілюючи філософію Go простоти та ясності.