为了账号安全,请及时绑定邮箱和手机立即绑定

time.Parse 自定义布局

time.Parse 自定义布局

Go
慕妹3242003 2021-10-18 14:31:36
我正在尝试将此字符串模式解析"4-JAN-12 9:30:14"为time.Time.尝试过time.Parse("2-JAN-06 15:04:05", inputString)和许多其他人,但无法使其正常工作。我已经阅读了http://golang.org/pkg/time/#Parse和https://gobyexample.com/time-formatting-parsing但似乎没有任何这样的例子。谢谢!编辑:完整代码:type CustomTime time.Timefunc (t *CustomTime) UnmarshalJSON(b []byte) error {    auxTime, err := time.Parse("2-JAN-06 15:04:05", string(b))    *t = CustomTime(auxTime)    return err}解析时间 ""10-JAN-12 11:20:41"" 为 "2-JAN-06 15:04:05":无法将 ""24-JAN-15 10:27:44"" 解析为 "2"
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

不知道你做错了什么(应该发布你的代码),但这实际上只是一个简单的函数调用:


s := "4-JAN-12 9:30:14"

t, err := time.Parse("2-JAN-06 15:04:05", s)

fmt.Println(t, err)

输出:


2012-01-04 09:30:14 +0000 UTC <nil>

在Go Playground上试一试。


请注意,time.Parse()返回 2 个值:解析time.Time值(如果解析成功)和可选error值(如果解析失败)。


请参阅以下示例,其中我故意指定了错误的输入字符串:


s := "34-JAN-12 9:30:14"


if t, err := time.Parse("2-JAN-06 15:04:05", s); err == nil {

    fmt.Println("Success:", t)

} else {

    fmt.Println("Failure:", err)

}

输出:


Failure: parsing time "34-JAN-12 9:30:14": day out of range

在Go Playground上试一试。


编辑:


现在您发布了代码和错误消息,您的问题是您的输入字符串包含前导和尾随引号!


删除前导和尾随引号,它将起作用。这是你的情况:


s := `"4-JAN-12 9:30:14"`


s = s[1 : len(s)-1]

if t, err := time.Parse("2-JAN-06 15:04:05", s); err == nil {

    fmt.Println("Success:", t)

} else {

    fmt.Println("Failure:", err)

}

输出(在Go Playground上试试):


Success: 2012-01-04 09:30:14 +0000 UTC


查看完整回答
反对 回复 2021-10-18
  • 1 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信