将 MySQL 日期时间字符串转换为 time.Time 格式

我只是无法将 SQL 日期时间 (MySQL) 值解析为一个time.Time值。我找不到适合 sql datetime 的布局。而且也不太明白这是如何工作的。


我确实想象我不是第一个为此而苦苦挣扎的人,尽管我真的找不到我应该如何完成这项工作。


输入:


2015-12-23 00:00:00

期望的输出:


1450825200

代码


time, err := time.Parse(time.SomeSqlDateTimeLayout, "2015-12-23 00:00:00")

timestamp := time.Unix()


拉风的咖菲猫
浏览 155回答 2
2回答

收到一只叮咚

如果标准库中不存在时间格式,您可以创建自己的时间格式进行解析。package mainimport (    "fmt"    "time")func main() {    layout := "2006-01-02 15:04:05"    str := "2015-12-23 00:00:00"    t, err := time.Parse(layout, str)    if err != nil {        fmt.Println(err)    }    fmt.Println(t.Unix())}输出1450828800我不知道时间格式的官方文档是什么,但你可以在这里找到它,从第 64 行开始。

繁星淼淼

事实上,我不知道 Go 的标准库中有任何 ISO-8601 解析支持。让我们使用最接近的 RFC-3309:package mainimport (  "fmt"  "time"  "strings")func main() {  // convert iso-8601 into rfc-3339 format  rfc3339t := strings.Replace("2015-12-23 00:00:00", " ", "T", 1) + "Z"  // parse rfc-3339 datetime  t, err := time.Parse(time.RFC3339, rfc3339t)  if err != nil {    panic(err)  }  // convert into unix time  ut := t.UnixNano() / int64(time.Millisecond)  fmt.Println(ut)}输出1450828800000游乐场:http : //play.golang.org/p/HxZCpxmjvg希望这可以帮助!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go