Go 语言读取一个Excel文件的时候,大家会怎么处理日期的不同格式问题呢?

作者站长头像
站长
· 阅读数 5

题目描述

Go 语言读取一个Excel的时候,大家会怎么处理日期的不同格式问题呢?

比如用户可能会输入:20230331、2023-03-31、2023/03/31...

用 Go 语言如何进行统一处理?

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
回复
1个回答
avatar
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)
}
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容