You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang使用time.Parse解析日期报unexpected "e"错误如何解决

问题根因

Go 标准库time包的日期解析采用固定参考时间占位符规则,不同写法的月份占位符对应匹配的格式完全不同:

  • Jan 仅匹配3个字母的月份缩写,比如Jun、Jan、Feb
  • January 才对应完整拼写的月份名,比如June、January、March

原先使用的布局字符串是Jan, 02 2006,解析器读到June时,匹配到前3个字符Jun就判定月份字段解析结束,接下来预期读取逗号分隔符,实际读到的是剩余字母e,就触发了报错。

修复方法

将布局字符串中的月份占位符从Jan替换为January即可,修正后的可运行代码:

package main

import (
    "fmt"
    "time"
)

func main() {
    parseTime, err := time.Parse("January, 02 2006", "June, 24 2022")
    if err != nil {
        fmt.Printf("解析失败: %v\n", err)
        return
    }
    fmt.Printf("解析成功: %v\n", parseTime)
}

代码运行输出:

解析成功: 2022-06-24 00:00:00 +0000 UTC
常用月份占位符参考
  • 带前导零的数字月份:01,匹配06、01这类格式
  • 不带前导零的数字月份:1,匹配6、1这类格式
  • 3位缩写月份名:Jan
  • 完整拼写月份名:January

内容的提问来源于stack exchange,提问作者daisy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 12:31:01