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

Go语言如何将日期字符串Oct 10 2022转换为time对象?

解决Go语言日期字符串转time对象的问题

你的问题出在格式字符串不匹配:time.ANSIC对应的格式是"Mon Jan _2 15:04:05 2006",包含时分秒部分,但你的输入字符串"Oct 10 2022"只有月份、日期、年份,缺少时间信息,导致解析失败,忽略错误后就返回了零值时间0001-01-01 00:00:00 +0000 UTC。

正确的做法是使用与输入字符串完全匹配的自定义格式字符串:

  • Go语言的日期格式通过参考时间Mon Jan 2 2006定义,你需要根据输入结构对应写出格式。
  • 对于"Oct 10 2022",对应的格式字符串是"Jan _2 2006"(_2用来兼容个位数日期前的空格,比如"Oct 5 2022"这类场景)。

修正后的代码示例:

package main

import (
	"fmt"
	"time"
)

func main() {
	date := "Oct 10 2022"
	layout := "Jan _2 2006"
	output, err := time.Parse(layout, date)
	if err != nil {
		fmt.Println("解析错误:", err)
		return
	}
	fmt.Println(output)
}

运行代码会输出:2022-10-10 00:00:00 +0000 UTC,即正确的time对象。

注意:永远不要忽略time.Parse返回的错误,它能帮你快速定位格式不匹配等问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:05:16