Go 语言读取一个Excel文件的时候,大家会怎么处理日期的不同格式问题呢?
题目描述
Go 语言读取一个Excel的时候,大家会怎么处理日期的不同格式问题呢?
比如用户可能会输入:20230331、2023-03-31、2023/03/31...
用 Go 语言如何进行统一处理?
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
回复
1个回答
test
2024-07-07
在 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)
}
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容