哎,先发下牢骚,go文档还是太弱了,特别是标准库中的文档说明,很多函数几乎就一句话过了。这点确实该向microsoft的msdn好好学学。
不用说,几乎是开发必须用到的包之一。time包的说明文档在:
<a href="http://golang.org/pkg/time/">http://golang.org/pkg/time/</a>
先注意下overview中的一句话:
the calendrical calculations always assume a gregorian calendar.
这个包的时间计算式是基于格里历,就是我们使用的公历。关于格里历的历史,可以看百度百科:
<a href="http://baike.baidu.com/view/391054.htm">http://baike.baidu.com/view/391054.htm</a>
看看godoc文档,最大的数据类型就是time了,这个time类型最微小可以表示到nanosecond(微毫秒,十亿份之一秒)。

time的比较是使用before,after和equal方法。看一眼after:
func (t time) after(u time) bool
很好,返回的是bool类型,是我们所需要的。
sub方法返回的是两个时间点之间的时间距离,看上图看到它返回的是duration结构,这个结构的具体类型和操作也在godoc中
add方法和sub方法是相反的,获取t0和t1的时间距离d是使用sub,将t0加d获取t1就是使用add方法
iszero方法:time的zero时间点是january 1, year 1, 00:00:00 utc,这个函数判断一个时间是否是zero时间点
local,utc,ln是用来显示和计算地区时间的。
显示:
特别是format这个函数,可以好好使用
文档中对这个weekday类型就没有说明!!没法,直接看代码可以看到:
weekday有一个string()方法
好了,看到这里外带我们有一个推测:
例子如下:
go的time之旅结束!!