Zum Inhalt

Datum und Zeit in Go

Datumsformat

Go verwendet ein recht eigensinniges Datumsformat. Anstatt Zeichen wie Y, M, D usw. zu verwenden, gibt es ein Referenzdatum. Die einzelnen Werte des Referenzdatums - die sich vom Wert nicht überschneiden - können zur Festlegung des gewünschten Datums verwendet werden.

Das Referenzdatum in Go

2006-01-02 15:04:05
  • Jahr: 2006
  • Monat: 01
  • Tag: 02
  • Stunde: 15
  • Minute: 04
  • Sekunde: 05
  • Monatsname: January bzw. Jan
  • Wochentag: Monday bzw. Mon

Das bedeutet: möchte man ein Datum im alten deutschen Format ausgeben, verwendet man (anstatt DD.MM.YYYY) "02.01.2006". Dieses Beispiel gibt das heutige Datum aus:

time.Now().Format("02.01.2006") // 24.03.2023

Datumsobjekt erzeugen

myDate := time.Now()

Aktuelles Jahr

currentYear := time.Now().Format("2006")

ISO-Format

fmt.Println(time.Now().Format("2006-01-02"))

Zeitdauer messen

start := time.Now()
...
elapsed := time.Since(start)
fmt.Println("execution time:", elapsed)

Datum parsen

package main

import (
  "fmt"
  "log"
  "time"
)

// Datumsformat
const MY_DATE_FORMAT = "2006-01-02"

func main() {
  mein_datums_string := "2022-03-28"
  t, err := time.Parse(MY_DATE_FORMAT, mein_datums_string)
  if err != nil {
    // Ausgabe, wenn der String NICHT mit dem
    // erwarteten Datumsformat geparst werden konnte
    log.Fatal(err)
  }
  // Ausgabe des erfolgreich geparsten Datums
  fmt.Println(t)
}

Feedback / Kontakt

Wenn Sie Fragen oder Anregungen zum Artikel Datum und Zeit in Go haben, senden Sie mir bitte eine E-Mail an: go+date@technotes.jakoubek.net