Golang에서 time.Time 유형의 XML 필드 비정렬화
Golang에서 REST API를 사용하여 XML 데이터 검색 작업을 할 때는 그렇지 않습니다. 기본 time.Time 구문 분석 형식을 따르지 않는 날짜 필드가 발생하는 경우는 흔하지 않습니다. 이러한 불일치로 인해 검색된 날짜를 GO 구조체의 time.Time 필드에 할당하려고 할 때 역마샬링 오류가 발생할 수 있습니다.
안타깝게도 역마샬링 함수에 원하는 날짜 형식을 명시적으로 지정하는 간단한 방법은 없습니다. 그러나 원하는 형식으로 날짜 필드를 나타내기 위해 사용자 정의 구조체를 정의하는 것과 관련된 해결 방법이 있습니다.
이를 달성할 수 있는 방법은 다음과 같습니다.
다음은 이 접근 방식을 보여주는 예제 코드입니다.
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 }
이 접근 방식을 사용하면 역마샬링 과정에서 날짜 형식을 지정해야 하는 한계를 극복하고 기본 형식을 따르지 않는 날짜를 원활하게 처리할 수 있습니다.
위 내용은 Golang에서 사용자 정의 날짜 형식을 사용하여 time.Time 유형의 XML 필드를 비정렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!