如何在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
相关产品推荐
相关产品推荐

