Go:
Ein Datum aus einem String interpretieren
Wie geht das:
Go bietet robuste Unterstützung für das Parsen von Daten und Zeiten durch das time
Paket. Der Schlüssel liegt im Verständnis von Gos Referenzdatumsformat: Mon Jan 2 15:04:05 MST 2006
, welches Sie verwenden, um Go zu sagen, wie es den eingehenden String interpretieren soll. Hier ist ein schnelles Beispiel, um Ihnen den Einstieg zu erleichtern:
package main
import (
"fmt"
"time"
)
func main() {
// Beispiel-Datumstring
dateStr := "2023-04-12 14:45:00"
// Definieren des Layouts/Formats des Eingabedatumstrings
// Dieses Layout sagt Go, dass ein Jahr erwartet wird, gefolgt von einem Monat,
// dann einem Tag, einer Stunde, einer Minute und schließlich einer Sekunde
layout := "2006-01-02 15:04:05"
// Den Datumstring gemäß des Layouts parsen
parsedDate, err := time.Parse(layout, dateStr)
if err != nil {
fmt.Println("Fehler beim Parsen des Datums:", err)
return
}
// Das geparste Datum ausgeben
fmt.Println("Geparstes Datum:", parsedDate)
}
Wenn Sie diesen Code ausführen, erhalten Sie:
Geparstes Datum: 2023-04-12 14:45:00 +0000 UTC
Beachten Sie, wie der layout
-String die Werte des Referenzdatums verwendet, um das Format des Eingabestrings anzugeben. Passen Sie das layout
an das Format Ihrer Eingabedaten an.
Tiefere Betrachtung
Das Design von Gos Datums- und Zeitparsen ist einzigartig und nutzt ein spezifisches Referenzdatum (Mon Jan 2 15:04:05 MST 2006
). Diese Herangehensweise, anstelle von konventionelleren Formatbezeichnern (wie YYYY
für das Jahr), wurde wegen der Lesbarkeit und Benutzerfreundlichkeit gewählt, indem ein mehr beispielbasiertes Format verwendet wird.
Obwohl dies anfangs für Programmierer, die an andere Sprachen gewöhnt sind, ungewöhnlich erscheinen kann, finden es viele nach einer kurzen Anpassungszeit intuitiver. Für Anwendungen, die komplexere Datumsmanipulationen erfordern oder Formate, die nicht direkt von Gos time
Paket unterstützt werden, können Drittanbieterbibliotheken wie github.com/jinzhu/now
zusätzliche Funktionalitäten bieten. Allerdings sind für die Mehrheit der Standardanwendungen Gos eingebaute Fähigkeiten robust, leistungsfähig und idiomatisch und verkörpern die Go-Philosophie der Einfachheit und Klarheit.