Go:
Ein Datum in einen String umwandeln
Wie geht das:
In Go bietet das time
Paket Funktionen zum Arbeiten mit Daten und Zeiten, einschließlich des Formatierens eines time.Time
Objekts in einen String. Die Format
Methode des time.Time
Typs wird zu diesem Zweck verwendet, wobei Sie den Layout-String entsprechend der Referenzzeit “Mon Jan 2 15:04:05 MST 2006” angeben.
Beispiel:
package main
import (
"fmt"
"time"
)
func main() {
currentTime := time.Now() // holt das aktuelle Datum und die aktuelle Uhrzeit
fmt.Println("Aktuelle Zeit:", currentTime)
// Formatierung der aktuellen Zeit im dd-mm-yyyy Format
formattedDate := currentTime.Format("02-01-2006")
fmt.Println("Formatiertes Datum:", formattedDate)
// Formatierung der aktuellen Zeit mit mehr Details
detailedFormat := currentTime.Format("Mon, 02 Jan 2006 15:04:05 MST")
fmt.Println("Detailliert formatiertes Datum:", detailedFormat)
}
Beispielausgabe:
Aktuelle Zeit: 2023-04-12 11:45:20.312457 +0000 UTC
Formatiertes Datum: 12-04-2023
Detailliert formatiertes Datum: Wed, 12 Apr 2023 11:45:20 UTC
Die Ausgabe variiert je nach aktuellem Datum und Uhrzeit, wenn das Programm ausgeführt wird.
Tiefergehende Betrachtung:
Im Kontext von Go wird die Manipulation von Datum und Uhrzeit, einschließlich der Formatierung, überwiegend durch das time
Paket gehandhabt. Der Ansatz zur Datumformatierung in Go, der durch die Format
Methode unter Verwendung eines spezifischen Layout-Strings festgelegt wird, unterscheidet sich von vielen anderen Programmiersprachen, die möglicherweise einfache Formatspezifizierer wie %Y
für ein vierstelliges Jahr verwenden. Die Go-Methode erfordert, dass Entwickler sich an die spezifische Referenzzeit: Mon Jan 2 15:04:05 MST 2006 erinnern, da sie als Muster für das Formatieren oder Parsen von Daten dient.
Diese Methode, obwohl anfangs für Entwickler, die mit strftime-ähnlichen Formatierungsfunktionen vertraut sind, unintuitiv sein mag, wurde für Klarheit entworfen und um die Verwirrung von lokalabhängigen Formaten zu vermeiden. Ist man einmal daran gewöhnt, finden viele, dass dieser Ansatz Fehler reduziert und die Lesbarkeit des Codes verbessert.
Darüber hinaus bedeutet Go’s Ansatz mit der Standardbibliothek, dass für die meisten gängigen Anwendungsfälle Drittanbieterbibliotheken unnötig sind. Dies vereinfacht das Abhängigkeitsmanagement und gewährleistet ein konsistentes Verhalten über verschiedene Projekte hinweg. Allerdings könnten Entwickler, die mit komplexeren Zeitzonenkonvertierungen oder wiederkehrenden Datumsberechnungen arbeiten, zusätzliche Pakete wie github.com/rickar/cal
für Feiertagsberechnungen oder github.com/golang/time
für nuanciertere Zeitmanipulationen als das, was das Standard-time
Paket bietet, in Betracht ziehen.