2011-07-05 59 views
14

我試圖解析tar生成的時間戳,例如'2011-01-19 22:15',但無法解決time.Parse的時髦API。解析Go中的日期

下產生了「解析時間‘2011-01-19 22: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日15時04分05秒2006 MST(MST是 GMT-0700)

這是Unix時間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

請注意,不能使用任何年份或月份作爲模板,它必須來自標準模板。 – serbaut