2011-07-05 9 views
14

私は '2011-01-19 22:15'のようなtarによって生成されたタイムスタンプを解析しようとしていますが、time.ParseのファンキーなAPIは動作しません。以下は、生産Goでの日付解析

「時間を解析し、 『2011年1月19日午後09時15分』:範囲外の月」

package main 
import (
    "fmt" 
    "time" 
    ) 

func main() { 
    var time , error = time.Parse("2011-01-19 22:15","2011-01-19 22:15") 
    if error != nil { 
     fmt.Println(error.String()) 
     return 
     } 
    fmt.Println(time) 
    } 
+0

peterSOは完全に答えたので、私は答えていないが、私はあなたがファンキーなこのアメリカ中心の日付のAPIを見つけるためだけじゃないことを正確にしたいと思います。私は、正規化された文字列から特定の解析文字列を生成するためのツールを作成することを考えています(私が想定しているISO 8601)。 –

+0

時間パッケージは標準的なフォーマットを提供しています:http://golang.org/pkg/time/#pkg-constants – Jeremy

答えて

32

はゴーtime packageマニュアルの指示に従ってください。

標準時間は、レイアウトに を使用している:

月1月2日のUnix時間である午前15時04分05秒MST 2006(MSTは GMT-0700である)

1136243045。 ( を01/02 03:04:05PM '06 -0700と考えてください。) 独自のフォーマットを定義するには、 の形式の標準時刻を と書き留めます。例えば

package main 

import (
    "fmt" 
    "time" 
) 

func main() { 
    t, err := time.Parse("2006-01-02 15:04", "2011-01-19 22:15") 
    if err != nil { 
     fmt.Println(err) 
     return 
    } 
    fmt.Println(time.SecondsToUTC(t.Seconds())) 
} 

Output: Wed Jan 19 22:15:00 UTC 2011 
+0

うまく動作します。 –

+9

テンプレートには年または月のみを使用できないことに注意してください。標準テンプレートの1つである必要があります。 – serbaut