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

题目描述

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

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

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

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
阅读 2.5k
1 个回答

在 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)
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题