Arbeiten mit Datum und Uhrzeit in Go: Vollständiger Leitfaden

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in die Arbeit mit Datum und Uhrzeit in Go

Die Arbeit mit Datum und Uhrzeit ist eine der Kernaufgaben in jeder Programmiersprache. Die Sprache Go (Golang) bietet ein leistungsstarkes und intuitives Paket time, das alle grundlegenden Operationen ermöglicht: Abrufen der aktuellen Zeit, Parsen von Zeichenketten, Formatieren, Berechnen von Differenzen, Erstellen von Timern und vieles mehr. Im Gegensatz zu einigen anderen Sprachen verwendet Go ein einzigartiges Referenzzeitformat, das den Code lesbarer und vorhersagbarer macht. In diesem Artikel werden wir die wichtigsten Funktionen des Pakets time anhand praktischer Beispiele im Detail besprechen.



Grundlegende Typen und Abrufen der aktuellen Zeit

Der Typ time.Time

Der zentrale Typ im Paket time ist die Struktur time.Time. Sie speichert Informationen über Sekunden, Nanosekunden, Zeitzone und einen monotonen Zähler (für präzise Messungen).



Abrufen des aktuellen Zeitpunkts

Um die aktuelle Zeit zu erhalten, wird die Funktion time.Now() verwendet. Sie gibt die lokale Zeit basierend auf den Systemeinstellungen zurück.

package main

import ( "fmt" "time")

func main() { now := time.Now() fmt.Println("Aktuelle Zeit:", now) fmt.Println("Jahr:", now.Year()) fmt.Println("Monat:", now.Month()) fmt.Println("Tag:", now.Day()) fmt.Println("Stunden:", now.Hour()) fmt.Println("Minuten:", now.Minute()) fmt.Println("Sekunden:", now.Second()) fmt.Println("Nanosekunden:", now.Nanosecond()) fmt.Println("Wochentag:", now.Weekday())}


Manuelles Erstellen einer Zeit

Sie können einen bestimmten Zeitpunkt mit der Funktion time.Date() erstellen. Sie akzeptiert Jahr, Monat, Tag, Stunde, Minute, Sekunde, Nanosekunde und Zeitzone.

package main

import ( "fmt" "time")

func main() { // 15. März 2025, 14:30:00, UTC specificDate := time.Date(2025, time.March, 15, 14, 30, 0, 0, time.UTC) fmt.Println("Erstelltes Datum:", specificDate)}


Parsen und Formatieren von Datumsangaben

Das Referenzformat von Go

Go verwendet einen einzigartigen Ansatz zur Formatierung: Anstelle von Codes wie YYYY-MM-DD wird das Referenzdatum Mon Jan 2 15:04:05 MST 2006 (oder kurz 2006-01-02T15:04:05Z07:00) verwendet. Das bedeutet, dass Sie für das Jahr 2006, für den Monat 01, für den Tag 02, für die Stunde 15 (oder 03 für das 12-Stunden-Format), für die Minute 04 und für die Sekunde 05 schreiben.



Formatieren einer Zeit in eine Zeichenkette

Die Methode Format() wandelt time.Time gemäß einer gegebenen Vorlage in eine Zeichenkette um.

package main

import ( "fmt" "time")

func main() { now := time.Now() fmt.Println("Standardformat:", now.Format("2006-01-02 15:04:05")) fmt.Println("Deutsches Format:", now.Format("02.01.2006 15:04")) fmt.Println("Nur Datum:", now.Format("02 Jan 2006")) fmt.Println("12-Stunden-Format:", now.Format("03:04:05 PM"))}


Parsen einer Zeichenkette in ein Datum

Die Funktion time.Parse() wandelt eine Zeichenkette in time.Time um. Wichtig ist, dass die Zeichenkette der Vorlage entspricht.

package main

import ( "fmt" "time")

func main() { dateStr := "2025-03-15 14:30:00" layout := "2006-01-02 15:04:05" parsedTime, err := time.Parse(layout, dateStr) if err != nil { fmt.Println("Fehler beim Parsen:", err) return } fmt.Println("Geparste Zeit:", parsedTime) fmt.Println("Wochentag:", parsedTime.Weekday())}


Parsen mit Zeitzone

Für Zeichenketten mit Zeitzone verwenden Sie time.ParseInLocation() oder geben Sie den Offset in der Vorlage an (Z07:00).

package main

import ( "fmt" "tim

Blogs

Buchempfehlungen