登录
首页 >  Golang >  Go问答

解析MySQL日期时间为Golang时间

来源:stackoverflow

时间:2024-03-28 09:27:29 127浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《解析MySQL日期时间为Golang时间》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

我的表中有 mysql 标准格式的 mysql 日期时间,例如

“2018-09-19 18:26:32.000000”

当我尝试使用 time.parse() 函数将其转换为 golang 时间时,我收到错误

解析时间“2018-09-19 18:26:32.000000”:月份超出范围

我尝试在线搜索,该格式似乎被许多人允许并常用来成功解析。

谁能帮我解决我所缺少的东西?下面是我正在使用的代码片段。

import (
    "fmt"
    "time"
)

layout := "2018-09-19 18:26:32.000000"
fmt.Println(val)
// prints 2018-09-19 18:26:32.000000
t, err := time.Parse(layout, val)
fmt.Println(fmt.Println(t.Unix()))
// prints -62135596800 
fmt.Println(err)
// prints parsing time "2018-09-19 18:26:32.000000": month out of range

解决方案


你的布局错误,应该是"2006-01-02 15:04:05.000000"。文档指出:

parse 解析格式化字符串并返回它的时间值 代表。布局通过显示引用的方式来定义格式 时间,定义为

2006 年 1 月 2 日星期一 15:04:05 -0700 mst

如果它是值,则会被解释;它作为输入格式的示例。然后将对输入字符串进行相同的解释。

package main

import (
    "fmt"
    "time"
)

func main() {

    val := "2018-09-19 18:26:32.000000"
    layout := "2006-01-02 15:04:05.000000"
    t, _ := time.parse(layout, val)
    fmt.println(t.unix()) // prints 1537381592
}

输出

1537381592

试试here

好了,本文到此结束,带大家了解了《解析MySQL日期时间为Golang时间》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>