2017-09-12 12 views
-1

これは簡単な質問であればごめんなさい。これは現在私が持っているものです。GolangのYYYY-MM-DD文字列形式をタイムスタンプに変換するには?

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)) 

これは、私はPostgresのクエリに挿入するために正しい形式でsnapshotを取得しようとしている出力

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

です。

私は

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

EDITを使用しています:これはpostgresのとちょうど引用符で囲むとPostgresのクエリ文字列内に置くために必要な2017-07-25の問題の以上であったことを思えています。すでに提案さ

+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) 
} 
関連する問題