Heim >Backend-Entwicklung >Golang >Wie kann ich die Zeitstempelformatierung in den JSON-Antworten von Go anpassen?

Wie kann ich die Zeitstempelformatierung in den JSON-Antworten von Go anpassen?

Susan Sarandon
Susan SarandonOriginal
2024-12-23 22:46:14785Durchsuche

How to Customize Timestamp Formatting in Go's JSON Responses?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn