$ go run time.go 2012-10-31 15:50:13.793654 +0000 UTC 2009-11-17 20:34:58.651387237 +0000 UTC 2009 November 17 20 34 58 651387237 UTC Tuesday true false false 25891h15m15.142266763s 25891.25420618521 1.5534752523711128e+06 9.320851514226677e+07 93208515142266763 2012-10-31 15:50:13.793654 +0000 UTC 2006-12-05 01:19:43.509120474 +0000 UTC
接下来,我们将研究与 Unix 纪元相关的时间概念。
Epoch
程序中的一个常见需求是获取自 Unix 纪元起的秒数、毫秒数或纳秒数。下面介绍如何用 Go 实现这一功能。
$ go run epoch.go 2012-10-31 16:13:58.292387 +0000 UTC 1351700038 1351700038292 1351700038292387000 2012-10-31 16:13:58 +0000 UTC 2012-10-31 16:13:58.292387 +0000 UTC
// Parse 会在畸形输入时返回错误信息,解释解析问题 ansic := "Mon Jan _2 15:04:05 2006" _, e = time.Parse(ansic, "8:41PM") p(e) }
log
1 2 3 4 5 6 7 8 9
$ go run time-formatting-parsing.go 2014-04-15T18:00:15-07:00 2012-11-01 22:08:41 +0000 +0000 6:00PM Tue Apr 15 18:00:15 2014 2014-04-15T18:00:15.161182-07:00 0000-01-01 20:41:00 +0000 UTC 2014-04-15T18:00:15-00:00 parsing time "8:41PM" as "Mon Jan _2 15:04:05 2006": cannot parse "8:41PM" as "Mon"