Maison >développement back-end >Golang >Comment personnaliser le formatage de l'horodatage dans l'encodage JSON de Go ?

Comment personnaliser le formatage de l'horodatage dans l'encodage JSON de Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-19 05:51:36142parcourir

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

Formatage des horodatages pour l'encodage JSON

Lorsque vous travaillez avec Go, il peut être nécessaire de formater les horodatages générés par le type time.Time. Par défaut, JSON rassemble l'heure au format RFC3339, ce qui entraîne un format indésirable.

Personnalisation du formatage de l'horodatage

Pour personnaliser le formatage de l'horodatage, implémentez l'interface Marshaler pour votre type d'heure personnalisé. :

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
}

Appliquez ce type personnalisé à votre document struct:

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

Lors du marshaling, vous pouvez ensuite initialiser l'instance de document comme :

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

Le JSON résultant aura désormais un horodatage formaté dans le format souhaité, tel que "Mai 15, 2014".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn