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.