使用時間戳時,通常會遇到標準 Unix 紀元時間戳以外的格式。例如,tar 產生格式為 2011-01-19 22:15 的時間戳記。為了在 Go 中解析此類時間戳,我們求助於 time.Parse 函數。
但是,只需呼叫time.Parse("2011-01-19 22:15", "2011-01-19 22:15 ") 將導致錯誤:「解析時間2011-01-19 22 :15: 月份超出範圍」。要理解原因,我們需要深入研究 time.Parse 函數的非常規 API。
格式化字串怪癖
time.Parse 函數需要一個指定格式字串如何解釋輸入時間戳記。出於我們的目的,我們使用 2006-01-02 15:04 格式。此字串遵循Go time 套件文件中規定的約定:
To我們自己的格式,我們只需要指定標準格式的元素如何在我們的自訂格式中出現。例如,在我們的例子中,結果格式將是 2006-01-02 15:04。
解析時間戳
使用我們的格式化字串,我們現在可以解析時間戳:
import "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(t) }
這將正確解析時間戳並顯示結果time.時間物件。
以上是如何在 Go 中正確解析非標準日期和時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!