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

Wie kann ich die Zeitstempelformatierung in der JSON-Kodierung von Go anpassen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-19 05:51:36131Durchsuche

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

Zeitstempel für die JSON-Kodierung formatieren

Bei der Arbeit mit Go kann es vorkommen, dass Zeitstempel formatiert werden müssen, die vom Typ time.Time ausgegeben werden. Standardmäßig marshallt JSON die Zeit als RFC3339, was zu einem unerwünschten Format führt.

Zeitstempelformatierung anpassen

Um die Zeitstempelformatierung anzupassen, implementieren Sie die Marshaler-Schnittstelle für Ihren benutzerdefinierten Zeittyp :

import (
    "encoding/json"
    "fmt"
)

type JSONTime time.Time

func (t JSONTime) MarshalJSON() ([]byte, error) {
    stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2"))
    return []byte(stamp), nil
}

Wenden Sie diesen benutzerdefinierten Typ auf Ihr Dokument an struct:

type Document struct {
    Name        string
    Content     string
    Stamp       JSONTime
    Author      string
}

Beim Marshalling können Sie die Dokumentinstanz dann wie folgt initialisieren:

testDoc := model.Document{"Meeting Notes", "These are some notes", JSONTime(time.Now()), "Bacon"}

Der resultierende JSON verfügt nun über einen formatierten Zeitstempel in Ihrem gewünschten Format, z. B. „Mai 15, 2014".

Das obige ist der detaillierte Inhalt vonWie kann ich die Zeitstempelformatierung in der JSON-Kodierung 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