I'm trying to build golang date time struct and I'm having some issues. Please help me build the model.
Thanks again
"effectiveDates" : {
"startDate" : {
"_class" : "com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl",
"year" : NumberInt(2008),
"month" : NumberInt(10),
"day" : NumberInt(16),
"timezone" : NumberInt(-300),
"hour" : NumberInt(9),
"minute" : NumberInt(50),
"second" : NumberInt(13)
}
}
This should be enough to get you going. There are a couple quirks:
Here's my solution:
package main
import (
"encoding/json"
"fmt"
"time"
)
type StartDate struct {
Class string `json:"_class"`
Year int `json:"year"`
Month int `json:"month"`
Day int `json:"day"`
Timezone string `json:"timezone"`
Hour int `json:"hour"`
Minute int `json:"minute"`
Second int `json:"second"`
}
type EffectiveDates struct {
StartDate `json:"startDate"`
}
type Payload struct {
EffectiveDates `json:"effectiveDates"`
}
var input = `{
"effectiveDates" : {
"startDate" : {
"_class" : "com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl",
"year" : 2008,
"month" : 10,
"day" : 16,
"timezone" : "-0300",
"hour" : 9,
"minute" : 50,
"second" : 13
}
}
}`
func main() {
var p Payload
var t time.Time
err := json.Unmarshal([]byte(input[:]), &p)
if err != nil {
fmt.Println("error:", err)
}
timeStr := fmt.Sprintf("%d-%d-%d %d:%d:%d %s", p.Year, p.Month, p.Day, p.Hour, p.Minute, p.Second, p.Timezone)
if t, err = time.Parse("2006-01-02 3:04:05 -0700", timeStr); err != nil {
fmt.Println("error:", err)
}
fmt.Printf("%s", t.Format(time.RFC3339))
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With