Analysering av en dato fra en streng

Go:
Analysering av en dato fra en streng

Hvordan:

Go gir robust støtte for parsing av datoer og tider gjennom time-pakken. Nøkkelen er å forstå Go’s referansedatoformat: Mon Jan 2 15:04:05 MST 2006, som du bruker for å fortelle Go hvordan den inngående strengen skal tolkes. Her er et raskt eksempel for å komme i gang:

package main

import (
	"fmt"
	"time"
)

func main() {
	// Eksempel datostreng
	dateStr := "2023-04-12 14:45:00"
	
	// Definer layout/format på inndatodato strengen
	// Dette layoutet forteller Go å forvente et år, etterfulgt av en måned,
	// deretter en dag, time, minutt og til slutt sekund
	layout := "2006-01-02 15:04:05"
	
	// Parse datostrengen i henhold til layoutet
	parsedDate, err := time.Parse(layout, dateStr)
	if err != nil {
		fmt.Println("Feil ved parsing av dato:", err)
		return
	}
	
	// Skriv ut den parsede datoen
	fmt.Println("Parsert Dato:", parsedDate)
}

Når du kjører denne koden, vil du få:

Parsert Dato: 2023-04-12 14:45:00 +0000 UTC

Legg merke til hvordan layout-strengen bruker referansedatoens verdier for å spesifisere formatet på inndatastrengen. Juster layoutet for å matche formatet til dine inndatodatoer.

Dypdykk

Designet av Go’s dato- og tidsparingsmekanisme er unikt, og benytter seg av en spesifikk referansedato (Mon Jan 2 15:04:05 MST 2006). Denne tilnærmingen, i stedet for å bruke mer konvensjonelle format spesifikatorer (som YYYY for år), ble valgt for lesbarhet og brukervennlighet, og utnytter et mer eksempelbasert format.

Selv om dette i utgangspunktet kan virke uvanlig for programmere vant til andre språk, finner mange det mer intuitivt etter en kort tilpasningsperiode. For applikasjoner som krever mer kompleks datomanipulasjon eller formater som ikke direkte støttes av Go’s time-pakke, kan tredjepartsbiblioteker som github.com/jinzhu/now tilby ekstra funksjonalitet. Imidlertid, for flertallet av standardapplikasjoner, er Go’s innebygde funksjoner robuste, ytelsessterke og idiomatiske, og legemliggjør Go-filosofien om enkelhet og klarhet.