2017-09-12 28 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) 
} 
相關問題