2017-09-12 29 views
-1

如果这是一个微不足道的问题,我很抱歉。这是目前我所拥有的。如何将YYYY-MM-DD字符串格式转换为Golang中的时间戳?

snapshot = "2017-07-25" 
    snapshotFilter := " AND cdate = %s" 
    snapshot, err := time.Parse(time.RFC3339, snapshot) 
    if err != nil { 
     log.Fatal(err) 
    } 
    queryFilter = queryFilter + fmt.Sprintf(snapshotFilter, pq.FormatTimestamp(snapshot)) 

这是

2017/09/12 09:59:34 parsing time "2017-07-25" as "2006-01-02T15:04:05Z07:": cannot parse "" as "T". 

我试图让snapshot以正确的格式将其插入一个Postgres查询的输出。

我使用

"database/sql" 
"time" 
"github.com/gorilla/mux" 
"github.com/lib/pq" 

编辑:似乎是,这是更大的问题,在Postgres和2017-07-25只需要加引号,把Postgres的查询字符串内。

+3

见https://medium.com/@Martynas/formatting-date-and-time-in-golang-5816112bf098 ... RFC3339希望你传递在看起来像这样的时间 '2006-01-02T15:04:05Z07:00',你希望你的格式是这个'2006-01-02' – reticentroot

+0

使用这个例子以及https://goplay.space/ #3S0VIw93On – reticentroot

+0

@reticentroot:如果您正在回答问题,为何要使用评论来执行此操作?除非有人复制你的答案,否则这个问题一直没有答案。 – TehSphinX

回答

3

正如已经建议,使用此:

package main 

import (
    "fmt" 
    "log" 
    "time" 
) 

const layout = "2006-01-02" 

func main() { 
    snapshot := "2017-07-25" 
    t, err := time.Parse(layout, snapshot) 
    if err != nil { 
     log.Fatal(err) 
    } 
    fmt.Println(t) 
} 
相关问题