Arbeiten mit Daten in Go (Golang): Überblick über Bibliotheken und Pakete

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

Arbeiten mit Daten in Go (Golang): vollständiger Überblick über Bibliotheken



Die Arbeit mit Datum und Zeit gehört zu den häufigsten Aufgaben in der Webentwicklung, Analytik und im Backend. In Go (Golang) bietet die Standardbibliothek time ein leistungsstarkes, aber nicht immer intuitives Toolkit. Zur Vereinfachung der Entwicklung gibt es zahlreiche Drittanbieter-Bibliotheken. In diesem Artikel werden wir die grundlegenden Ansätze und beliebten Bibliotheken für die Arbeit mit Daten in Go im Detail besprechen.



1. Das Standardpaket time



Das Paket time ist die Grundlage für die Arbeit mit Datum und Zeit in Go. Es enthält die Typen Time, Duration, Location sowie Funktionen zum Formatieren, Parsen und für Arithmetik.



Hauptfunktionen:

  • Aktuelle Zeit: time.Now()
  • Formatierung: Methode .Format(layout string) – verwendet das spezielle Referenzformat Mon Jan 2 15:04:05 MST 2006 (Go wurde 2006 geboren).
  • Parsing: Funktion time.Parse(layout, value string).
  • Arithmetik: Methoden .Add(d Duration), .Sub(t Time), .AddDate(y, m, d int).
  • Zeitzonen: time.LoadLocation(name string) und Methode .In(loc *Location).


package main

import ( "fmt" "time")

func main() { // Aktuelle Zeit now := time.Now() fmt.Println("Jetzt:", now)

// Formatierung fmt.Println("Format RFC3339:", now.Format(time.RFC3339)) fmt.Println("Benutzerdefiniertes Format:", now.Format("02.01.2006 15:04:05"))

// Parsen eines Strings parsed, _ := time.Parse("2006-01-02", "2024-03-15") fmt.Println("Geparst:", parsed)

// Arbeit mit Zeitzonen loc, _ := time.LoadLocation("Europe/Moscow") moscowTime := now.In(loc) fmt.Println("Zeit in Moskau:", moscowTime)

// Arithmetik tomorrow := now.AddDate(0, 0, 1) fmt.Println("Morgen:", tomorrow.Format("02.01.2006"))}


Besonderheit: Go verwendet ein einzigartiges Referenzformat (2006-01-02T15:04:05Z07:00), nicht das gewohnte YYYY-MM-DD. Das erfordert Eingewöhnung, vermeidet aber Mehrdeutigkeiten.



2. Die Bibliothek carbon (Analogon zu Carbon für PHP)



Die Bibliothek carbon ist ein Port der beliebten PHP-Bibliothek Carbon. Sie bietet eine praktische fluent-Schnittstelle für die Arbeit mit Daten.



Installation:

go get github.com/golang-module/carbon/v2


Anwendungsbeispiele:

package main

import ( "fmt" "github.com/golang-module/carbon/v2")

func main() { // Aktuelles Datum now := carbon.Now() fmt.Println("Jetzt:", now.ToDateTimeString())

// Datum erstellen date := carbon.CreateFromDate(2024, 3, 15) fmt.Println("Datum:", date.ToDateString())

// Differenz zwischen Daten start := carbon.Parse("2024-01-01") end := carbon.Parse("2024-03-15") diff := start.DiffInDays(end) fmt.Printf("Tage dazwischen: %d", diff)

// Menschenlesbare Formate fmt.Println("Gestern:", carbon.Yesterday().ToDateString()) fmt.Println("Morgen:", carbon.Tomorrow().ToDateString())

// Prüfungen fmt.Println("Ist jetzt Wochenende?", now.IsWeekend()) fmt.Println("Ist jetzt Morgen?", now.IsMorning())}


Vorteile: einfache API, Unterstützung für chinesische Schriftzeichen, Lokalisierung, Methoden für die Arbeit mit Anfang/Ende von Tag, Woche, Monat.



3. Die Bibliothek now (minimalistisches Werkzeug)



Die Bibliothek now vom Autor von GORM ist ein leichtes Werkzeug zur Berechnung von Anfang und Ende von Zeiträumen.



Install

Empfehlungen