Formatieren von Zeitstempeln in ausgehendem JSON mit Time.Time
In Go, wenn Sie einen time.Time-Typ als Teil einer JSON-Antwort senden, Oft ist es wünschenswert, den Zeitstempel in ein gewünschtes Format statt in das Standardformat ISO 8601 zu formatieren. Um dies zu erreichen, können Sie die folgenden Techniken anwenden:
Benutzerdefiniertes Marshalling und Unmarshaling
Die Marshall-Schnittstelle kann durch benutzerdefinierte Typen implementiert werden, um deren JSON-Darstellung zu bestimmen. Ebenso kann die Unmarshaler-Schnittstelle verwendet werden, um das Parsen von JSON-Daten in benutzerdefinierte Typen zu steuern. Für time.Time definieren wir einen JSONTime-Typ, der MarshalJSON implementiert:
type JSONTime time.Time func (t JSONTime) MarshalJSON() ([]byte, error) { // Format the time in the desired format stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2")) return []byte(stamp), nil }
Aktualisieren des Dokumenttyps
Ändern Sie im Dokumenttyp das Feld „Stempel“. Geben Sie JSONTime ein:
type Document struct { ... Stamp JSONTime ... }
Beispiel Verwendung
Jetzt beim Initialisieren des Testdokuments:
testDoc := model.Document{ ... Stamp: JSONTime(time.Now()), ... }
Der Zeitstempel wird gemäß dem angegebenen Format formatiert, wenn er als JSON codiert ist:
{ ... "Stamp": "May 15, 2014" ... }
Dieser Ansatz bietet Flexibilität und Kontrolle darüber, wie Zeitstempel in JSON-Antworten formatiert werden, und ermöglicht so eine Anpassung entsprechend spezifischer Anforderungen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Zeitstempelformatierung in den JSON-Antworten von Go anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!