题目描述
Go 语言读取一个Excel的时候,大家会怎么处理日期的不同格式问题呢?
比如用户可能会输入:20230331、2023-03-31、2023/03/31…
用 Go 语言如何进行统一处理?
回答:
在 Go 语言中,你可以使用 time 包解析和处理不同格式的日期。在读取 Excel 文件时,你可以尝试解析日期列的多种格式,直到解析成功为止。这是我写的一个例子你可以参考一下:
package main import ( "fmt" "time" ) func main() { dates := []string{ "20230331", "2023-03-31", "2023/03/31", } for _, date := range dates { parsedDate, err := parseDate(date) if err != nil { fmt.Println("Error parsing date:", err) } else { fmt.Println("Parsed date:", parsedDate) } } } func parseDate(input string) (time.Time, error) { // 定义可能的日期格式 formats := []string{ "20060102", "2006-01-02", "2006/01/02", } var parsedDate time.Time var err error // 尝试按顺序解析每种格式 for _, format := range formats { parsedDate, err = time.Parse(format, input) if err == nil { return parsedDate, nil } } return time.Time{}, fmt.Errorf("could not parse date: %s", input) }
