Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Unmarshal XML Fields of Type time.Time dengan Format Tarikh Tersuai di Golang?

Bagaimana untuk Unmarshal XML Fields of Type time.Time dengan Format Tarikh Tersuai di Golang?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-07 22:53:03785semak imbas

How to Unmarshal XML Fields of Type time.Time with Custom Date Formats in Golang?

Unmarshal XML Fields of Type time.Masa di Golang

Apabila bekerja dengan pengambilan data XML menggunakan API REST di Golang, ia tidak jarang ditemui medan tarikh yang tidak mematuhi masa lalai.Format penghuraian masa. Percanggahan ini boleh mengakibatkan kegagalan unmarshaling apabila cuba untuk menetapkan tarikh yang diambil kepada masa. Medan masa dalam struct GO.

Malangnya, tiada cara mudah untuk menentukan secara eksplisit format tarikh yang diingini kepada fungsi unmarshal. Walau bagaimanapun, wujud penyelesaian yang melibatkan penentuan struct tersuai untuk mewakili medan tarikh dengan format yang diingini.

Begini cara ia boleh dicapai:

  1. Buat struct Masa tersuai tanpa nama yang membenamkan masa.Jenis masa.
  2. Laksanakan kaedah UnmarshalXML yang diperlukan dalam struct Masa tersuai untuk mengendalikan proses unmarshaling.
  3. Sesuaikan logik penghuraian tarikh dalam UnmarshalXML untuk menampung format tarikh "yyyymmdd" yang digunakan oleh API.
  4. Gunakan struct Masa tersuai untuk menggantikan medan masa asal.Masa dalam struct Transaksi anda.

Berikut ialah contoh kod yang menunjukkan pendekatan ini:

type Transaction struct {
    // ... other fields
    DateEntered customTime `xml:"enterdate"` // Use customTime to handle specific date format
}

type customTime struct {
    time.Time
}

func (c *customTime) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
    const shortForm = "20060102" // Custom date format: "yyyymmdd"
    var v string
    d.DecodeElement(&v, &start)
    parse, err := time.Parse(shortForm, v)
    if err != nil {
        return err
    }
    *c = customTime{parse}
    return nil
}

Dengan menggunakan pendekatan ini, anda boleh mengatasi had menentukan format tarikh semasa proses unmarshaling dan mengendalikan tarikh yang tidak mematuhi format lalai dengan lancar.

Atas ialah kandungan terperinci Bagaimana untuk Unmarshal XML Fields of Type time.Time dengan Format Tarikh Tersuai di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn