go - 将oracle时间字符串转换为time.Time golang

标签 go

我是 golang 的新手,正在尝试将从 oracle DB 接收到的字符串日期转换为 golang 中的时间。

这是公告链接:https://play.golang.org/p/z3OyC4-DTFA

timeTest, err := time.Parse("22-JAN-06", "26-JAN-17")
if err != nil {
    fmt.Printf("\n\npaymentDateAfter: %v\n\n", timeTest)
} else {
    fmt.Printf("\n\npaymentDateErr: %v\n\n", err)
}

任何人都可以帮助我理解这个问题。我试着搜索它并在堆栈溢出中找到了很多答案,但没有一个是针对这种格式的。

谢谢

最佳答案

the docs 中所述,time.Parse 中的layout 时间需要表示以下年/月/日/等...: Mon Jan 2 15:04:05 - 0700 MST 2006

但是,您使用的是 2006 年 1 月 22 日

如果您将代码更改为以下内容,它会起作用:

func main() {
    test, err := time.Parse("2-Jan-2006", "26-MAR-2018")
    if err != nil {
        panic(err)
    }

    fmt.Println(test)
    // Prints: 2018-03-26 00:00:00 +0000 UTC
}

注意:布局中的月份(Jan)区分大小写,但要解析的字符串中的月份(MAR)不区分大小写。

关于go - 将oracle时间字符串转换为time.Time golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48725291/

相关文章:

go - 为什么要将 Golang 接口(interface)命名为 "Interface"?

go - 在golang中执行不带引号的模板

dictionary - 如何漂亮地打印同步 map 的内容

date - 如何使用golang打印两个日期之间的特定日期?

go - 来自多个测试用例的类似 sqlmock 期望导致 false 失败

c# - 用 'Floating Point Numbers' 绘制图像

c - golang exec.Command 无法运行 C 二进制文件

go - Redis `TIME` 集群模式命令

docker - go get golang-migrate inside of docker 错误

go - 解码 LinkedIn 电子邮件