Home > Article > Backend Development > How to parse JSON date using regular expressions in Go?
How to parse JSON date using regular expressions? Use the regular expression "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{ 2})(.\d+)?Z$" matches JSON dates in the format "YYYY-MM-DDTHH:MM:SS.mmmZ". Parse the date through the regexp.MatchString function and print "Date parsed successfully" when parsed successfully.
How to use regular expressions to parse JSON dates in Go
Go provides a powerful regular expression library that can be used Parse and process complex text, including JSON dates. This article will guide you step by step in parsing JSON dates with regular expressions and provide a practical case.
Regular expression syntax
The following regular expression can be used to match JSON dates:
/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$/
This expression can match the format "YYYY-MM -DDTHH:MM:SS.mmmZ" date, where:
Go code
The following Go code shows how to use regular expressions to parse JSON dates:
package main import ( "fmt" "regexp" ) func main() { date := "2023-07-04T13:30:00.123Z" matched, err := regexp.MatchString(`^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$`, date) if err != nil { fmt.Println("Error:", err) return } if matched { fmt.Println("Date parsed successfully") } else { fmt.Println("Invalid date format") } }
Practical case
Suppose you have a JSON file named "dates.json"
which contains an array of dates:
{ "dates": [ "2023-07-04T13:30:00.123Z", "2023-07-05T10:00:00Z", "2023-07-06T15:15:00Z" ] }
Here is the modified code to parse the dates in the JSON file:
package main import ( "encoding/json" "fmt" "io/ioutil" "log" "regexp" ) func main() { data, err := ioutil.ReadFile("dates.json") if err != nil { log.Fatal(err) } type DateResponse struct { Dates []string `json:"dates"` } var datesResponse DateResponse if err := json.Unmarshal(data, &datesResponse); err != nil { log.Fatal(err) } for _, date := range datesResponse.Dates { matched, err := regexp.MatchString(`^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$`, date) if err != nil { fmt.Println("Error:", err) } if matched { fmt.Println("Date parsed successfully") } else { fmt.Println("Invalid date format:", date) } } }
The above is the detailed content of How to parse JSON date using regular expressions in Go?. For more information, please follow other related articles on the PHP Chinese website!