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()
Datumsobjekt verändern
Zum Verändern eines Datums (z.B. Tage dazuzählen oder abziehen) gibt es die Funktion AddDate. Diese hat drei Parameter years, months und days. Entsprechend werden Jahre, Monate oder Tage hinzugezählt oder abgezogen, falls die Werte negativ sind.
// 5 Tage addieren
mydate := time.Now().Add(0, 0, 5)
// 1 Monate abziehen
mydate := time.Now().Add(0, -1, 0)
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