1: Einstieg in Carbon
1.1 Einführung
Ein einfaches, semantisches und benutzerfreundliches Golang-Paket für Datums- und Uhrzeitfunktionen.
Vorteile der Verwendung von Carbon für die Handhabung von Datums- und Uhrzeitfunktionen:
- Benutzerfreundlich: Carbon bietet eine fließende und ausdrucksstarke Schnittstelle für die Handhabung von Datums- und Uhrzeitfunktionen, die für Entwickler intuitiv ist.
- Unterstützung für Internationalisierung: Unterstützt die Internationalisierung, sodass Sie Ihre Datumsdarstellungen lokalisieren können.
- Unveränderlichkeit: Carbon-Instanzen sind unveränderlich, was bedeutet, dass sie sicher weitergegeben werden können, ohne dass unerwartete Änderungen auftreten.
- Zeitzonen-Handhabung: Carbon vereinfacht die Komplexität der Verwaltung von Datums- und Uhrzeiten in verschiedenen Zeitzonen.
- Umfangreiche API: Bietet eine umfassende Reihe von Funktionen zum Erstellen, Analysieren und Formatieren von Datums- und Uhrzeiten.
1.2 Installationsanleitung
Installation für Go-Version >= 1.16
Um das Carbon-Paket für Go-Version 1.16 oder höher zu installieren, verwenden Sie den folgenden Befehl:
go get -u github.com/golang-module/carbon/v2
Anschließend importieren Sie das Paket in Ihre Go-Datei:
import "github.com/golang-module/carbon/v2"
Installation für Go-Version < 1.16
Für ältere Versionen von Go können Sie Carbon immer noch mit folgendem Befehl installieren:
go get -u github.com/golang-module/carbon
Und entsprechend importieren:
import "github.com/golang-module/carbon"
Bitte beachten Sie, dass v1 nicht mehr aktiv aktualisiert wird, aber für Fehlerkorrekturen gewartet wird.
1.3 Einrichten Ihres ersten Carbon-Projekts
Grundlegende Konfiguration von Carbon: Nach der Installation von Carbon können Sie sofort damit beginnen, indem Sie eine neue Carbon-Instanz erstellen. Sie können Carbon anpassen, indem Sie das Standard-Global-Layout, die Zeitzone und die Lokalisierung festlegen, um den Anforderungen Ihres Projekts gerecht zu werden.
Festlegen des globalen Standard-Layouts, der Zeitzone und der Lokalisierung:
carbon.SetDefault(carbon.Default{
Layout: carbon.RFC3339Layout,
Timezone: carbon.PRC,
Locale: "en",
})
Wenn nicht explizit festgelegt, hat Carbon Standardwerte für diese Einstellungen — Layout: "2006-01-02 15:04:05"
, Zeitzone: Lokal
, Lokalisierung: "en"
.
2: Grundlegende Carbon-Operationen
2.1 Arbeiten mit der aktuellen Uhrzeit
Abrufen des aktuellen Datums und Uhrzeit
Die Abrufung des aktuellen Datums und der aktuellen Uhrzeit ist eine grundlegende Operation in vielen Anwendungen. Mit Carbon können Sie die aktuelle Datums- und Uhrzeitinstanz durch Aufrufen der Methode carbon.Now()
erhalten. Sehen wir uns an, wie Sie die aktuelle Datums- und Uhrzeit erhalten:
// Ruft das aktuelle Datum und die aktuelle Uhrzeit als Carbon-Instanz ab.
now := carbon.Now()
fmt.Println("Aktuelle Datums- und Uhrzeit:", now)
Anzeige von Heute, Gestern und Morgen
Carbon bietet eine elegante Möglichkeit, mit Daten relativ zum aktuellen Tag zu arbeiten. Um die Datums- und Uhrzeitdarstellung von heute, gestern und morgen zu erhalten, können Sie die Methoden carbon.Now()
, carbon.Yesterday()
und carbon.Tomorrow()
verwenden:
// Aktuelles Datum und Uhrzeit
today := carbon.Now()
fmt.Println("Heute:", today.ToDateTimeString())
// Datum und Uhrzeit von gestern
yesterday := carbon.Yesterday()
fmt.Println("Gestern:", yesterday.ToDateTimeString())
// Datum und Uhrzeit von morgen
tomorrow := carbon.Tomorrow()
fmt.Println("Morgen:", tomorrow.ToDateTimeString())
Die Methoden bieten eine prägnante Möglichkeit, mit diesen häufig verwendeten Datumsreferenzen zu interagieren, ohne manuelle Berechnungen durchführen zu müssen.
Formatierung und Darstellung der aktuellen Uhrzeit
Carbon ermöglicht verschiedene Möglichkeiten, die Datums- und Uhrzeit zu formatieren und anzuzeigen. Egal, ob Sie ein Standardformat wie ISO8601, ein benutzerdefiniertes Format oder eine lokalisierte Version benötigen, Carbon bietet Methoden, um diese Anforderungen zu erfüllen.
So können Sie die aktuelle Datums- und Uhrzeit auf verschiedene Arten formatieren:
// Standard-Datums- und Uhrzeitdarstellung
fmt.Println("RFC3339-Format:", now.ToRFC3339String())
fmt.Println("ISO8601-Format:", now.ToIso8601String())
// Benutzerdefiniertes Datums- und Uhrzeitformat
fmt.Println("Benutzerdefiniert:", now.Format("Monday, 02-Jan-06 15:04:05 MST"))
// Verwendung von vordefinierten Layouts
fmt.Println("ANSIC-Format:", now.ToAnsicString())
fmt.Println("UnixDate-Format:", now.ToUnixDateString())
fmt.Println("RubyDate-Format:", now.ToRubyDateString())
fmt.Println("Kitchen-Format:", now.ToKitchenString())
// Für benutzerdefinierte Muster verwenden Sie die Format-Methode
fmt.Println("Benutzerdefiniertes Muster:", now.Format("2006-01-02 3:04 PM"))
Instanzen aus Zeitstempeln erstellen
In Go ist der Umgang mit Zeitstempeln häufig, und Carbon bietet intuitive Methoden zu deren Behandlung. Ein Zeitstempel ist eine Abfolge von Zeichen oder codierten Informationen, die anzeigen, wann ein bestimmtes Ereignis aufgetreten ist, wobei normalerweise Datum und Uhrzeit angegeben werden, manchmal genau bis zu einem kleinen Bruchteil einer Sekunde.
Um eine Carbon-Instanz aus einem Unix-Zeitstempel zu erstellen, der die Anzahl der Sekunden seit dem Unix-Epoche (Mitternacht am 1. Januar 1970, UTC) repräsentiert, können Sie verschiedene Genauigkeitsstufen verwenden:
// Erstellen einer Carbon-Instanz aus einem gegebenen Zeitstempel mit Sekundengenauigkeit
c1 := carbon.CreateFromTimestamp(1596604455)
fmt.Println(c1.ToString()) // Gibt aus: "202-08-05 13:14:15 +080 CST"
// Für höhere Genauigkeit (Millisekunden) verwenden Sie `CreateFromTimestampMilli`
c2 := carbon.CreateFromTimestampMilli(1596604455999)
fmt.Println(c2.ToString()) // Gibt aus: "202-08-05 13:14:15.999 +080 CST"
// Für Mikrosekunden verwenden Sie `CreateFromTimestampMicro`
c3 := carbon.CreateFromTimestampMicro(1596604455999999)
fmt.Println(c3.ToString()) // Gibt aus: "202-08-05 13:14:15.999999 +080 CST"
// Und für Nanosekunden verwenden Sie `CreateFromTimestampNano`
c4 := carbon.CreateFromTimestampNano(1596604455999999999)
fmt.Println(c4.ToString()) // Gibt aus: "202-08-05 13:14:15.999999999 +080 CST"
Instanzen aus Datum und Uhrzeitkomponenten erstellen
Wenn Sie die einzelnen Komponenten eines Datums, wie Jahr, Monat und Tag oder die Komponenten einer Uhrzeit wie Stunde, Minute und Sekunde haben, kann Carbon diese ebenfalls verarbeiten.
// Erstellen einer Carbon-Instanz nur aus einem gegebenen Datum
date := carbon.CreateFromDate(2022, 12, 25)
fmt.Println(date.ToDateString()) // Gibt aus: "2022-12-25"
// Erstellen einer Carbon-Instanz nur aus einer gegebenen Uhrzeit
time := carbon.CreateFromTime(23, 59, 59)
fmt.Println(time.ToTimeString()) // Gibt aus: "23:59:59"
// Erstellen einer Carbon-Instanz aus sowohl Datum als auch Uhrzeit
dateTime := carbon.CreateFromDateTime(2022, 12, 25, 23, 59, 59)
fmt.Println(dateTime.ToDateTimeString()) // Gibt aus: "2022-12-25 23:59:59"
2.3 Zeitzeichenfolgen analysieren
Den Umgang mit Datum/Uhrzeit-Repräsentationen als Zeichenketten ist ein häufiges Szenario. Carbon erleichtert das Parsen von Zeichenketten in Carbon-Instanzen.
Mit carbon.Parse
für gängige Zeitformate:
// Eine Zeichenkette mit Datum und Uhrzeit parsen
c := carbon.Parse("202-08-05 13:14:15", carbon.PRC)
if c.Error != nil {
fmt.Printf("Fehler: %v", c.Error)
} else {
fmt.Println(c.ToDateTimeString()) // Gibt aus: "202-08-05 13:14:15"
}
// Parsen einer RFC3339 formatierten Zeichenkette
rfc3339 := carbon.Parse("202-08-05T13:14:15+08:00")
fmt.Println(rfc3339.ToString()) // Gibt aus: "202-08-05 13:14:15 +080 CST"
Benutzerdefinierte Formate mit ParseByFormat
und ParseByLayout
Sie können auch Zeichenketten parsen, die in einem spezifischen Format vorliegen, das nicht direkt von carbon.Parse
verarbeitet wird.
// Eine Zeitzeichenkette als Carbon-Instanz nach Format parsen
byFormat := carbon.ParseByFormat("202|08|05 13|14|15", "2006|01|02 15|04|05")
fmt.Println(byFormat.ToDateTimeString()) // Gibt aus: "202-08-05 13:14:15"
// Eine Zeitzeichenkette als Carbon-Instanz nach Layout parsen
byLayout := carbon.ParseByLayout("202|08|05", "2006|01|02")
fmt.Println(byLayout.ToDateString()) // Gibt aus: "202-08-05"
Fehlerbehandlung
Überprüfen Sie immer das Error
-Feld, um sicherzustellen, dass das Parsen erfolgreich war:
invalidDate := carbon.Parse("Dies ist kein Datum", carbon.PRC)
if invalidDate.IsInvalid() {
fmt.Println("Fehler beim Parsen des Datums:", invalidDate.Error)
}
Denken Sie daran, eine robuste Fehlerüberprüfung ist ein entscheidender Teil beim Umgang mit Daten und Zeiten, um unerwartete Ergebnisse oder Systemabstürze zu verhindern.