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

如何在Go中解析Node.js Date.toString()输出为time类型?

解析Node.js new Date().toString() 输出为Go的time.Time类型

你遇到的问题是因为Node.js的new Date().toString()输出的时间格式和Go内置的time.RFC1123格式不匹配,直接用time.RFC1123解析会失败。

正确的解析方式

首先需要构造一个匹配该时间格式的布局字符串。Node.js的new Date().toString()输出格式为:星期缩写 月份缩写 日期 年份 时分秒 GMT±时区偏移 (时区名称),对应的Go布局字符串需要参考Go的标准参考时间Mon Jan 2 15:04:05 MST 2006来构造,最终布局为:"Mon Jan 2 2006 15:04:05 GMT-0700 (MST)"。

以下是完整的示例代码:

package main

import (
	"fmt"
	"time"
)

func main() {
	timeStr := "Mon Nov 21 2022 17:01:59 GMT+0530 (India Standard Time)"
	layout := "Mon Jan 2 2006 15:04:05 GMT-0700 (MST)"
	
	parsedTime, err := time.Parse(layout, timeStr)
	if err != nil {
		fmt.Printf("解析失败: %v\n", err)
		return
	}
	
	// 输出为RFC3339格式验证结果
	fmt.Println(parsedTime.Format(time.RFC3339))
}

代码说明

  • layout字符串完全对应目标时间的结构:
    • Mon 匹配星期缩写(如Mon)
    • Jan 匹配月份缩写(如Nov)
    • 2 匹配日期(如21,支持1位或2位数字)
    • 2006 匹配4位年份
    • 15:04:05 匹配时分秒
    • GMT-0700 匹配时区偏移(如GMT+0530)
    • (MST) 匹配括号内的时区名称(如(India Standard Time))
  • 必须处理time.Parse返回的错误,避免忽略错误导致后续逻辑异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:15:36