mysql - 将mysql datetime解析为golang时间
问题描述
我的表中有 MySQL 日期时间,采用 MySQL 标准格式,例如
“2018-09-19 18:26:32.000000”
当我尝试使用函数将它转换为 golang 时间时time.parse()
,我得到了错误
解析时间“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
在这里试试
推荐阅读
- python - 删除多个数据框列的字符串中的空格
- odata - MockServer 过滤时检测不到扩展属性
- html - css !important 不起作用 & 内联块更改为阻止
- c# - c# VssBasicCredential with Username & Password
- c# - 如何在不使用 API 的情况下在 C# 桌面应用程序中显示谷歌地球/谷歌地图
- python - SCAPY 返回带有正确电子邮件字符串的编码电子邮件
- java - 连接超时:连接。如果您使用 HTTP 代理,请在 IDE 或 Gradle 中配置代理设置
- node.js - Vue 开发服务器未在 docker 容器内启动
- mysql - MySQL,从 TableRow 创建表
- android - CalendarPickerView 在 Vivo 设备中返回空值