Analiza składniowa daty z ciągu znaków

Go:
Analiza składniowa daty z ciągu znaków

Jak to zrobić:

Go zapewnia solidne wsparcie dla parsowania dat i czasów poprzez pakiet time. Kluczem jest zrozumienie formatu referencyjnego daty w Go: Mon Jan 2 15:04:05 MST 2006, który używasz, aby powiedzieć Go, jak interpretować przychodzący string. Oto szybki przykład, który pomoże Ci zacząć:

package main

import (
	"fmt"
	"time"
)

func main() {
	// Przykładowy string z datą
	dateStr := "2023-04-12 14:45:00"
	
	// Definicja układu/formatu przychodzącego stringa z datą
	// Ten układ informuje Go, aby oczekiwać roku, następnie miesiąca, 
	// dnia, godziny, minuty, a na końcu sekundy
	layout := "2006-01-02 15:04:05"
	
	// Parsowanie stringa z datą zgodnie z układem
	parsedDate, err := time.Parse(layout, dateStr)
	if err != nil {
		fmt.Println("Błąd przy parsowaniu daty:", err)
		return
	}
	
	// Wypisanie sparsowanej daty
	fmt.Println("Sparsowana Data:", parsedDate)
}

Kiedy uruchomisz ten kod, otrzymasz:

Sparsowana Data: 2023-04-12 14:45:00 +0000 UTC

Zauważ, jak string layout używa wartości daty referencyjnej do określenia formatu przychodzącego stringa. Dostosuj layout, aby pasował do formatu Twoich wejściowych dat.

Zejście w głąb

Projektowanie parsowania dat i czasu w Go jest unikalne, wykorzystuje specyficzną datę referencyjną (Mon Jan 2 15:04:05 MST 2006). To podejście, zamiast używania bardziej konwencjonalnych specyfikatorów formatu (jak YYYY dla roku), zostało wybrane ze względu na czytelność i łatwość użycia, opierając się na formacie bardziej opartym na przykładach.

Chociaż początkowo może to wydawać się niezwykłe dla programistów przyzwyczajonych do innych języków, wielu znajduje to bardziej intuicyjne po krótkim okresie dostosowania. Dla aplikacji wymagających bardziej złożonej manipulacji datami lub formatów nieobsługiwanych bezpośrednio przez pakiet time Go, biblioteki stron trzecich, takie jak github.com/jinzhu/now, mogą oferować dodatkową funkcjonalność. Jednak dla większości standardowych aplikacji, wbudowane możliwości Go są solidne, wydajne i idiomatyczne, odzwierciedlając filozofię Go, która opiera się na prostocie i klarowności.