Go编程为时间和持续时间提供广泛的支持; 这里有些例子。我们将从获取当前时间开始。也可以通过提供年,月,日等来构建时间结构。时间总是与位置(即时区)相关联。
具体的每个函数,可参考示例中的代码 -
所有的示例代码,都放在
F:\worksp\golang
目录下。安装Go编程环境请参考:/tutorial/detail-5562.html
json.go
的完整代码如下所示 -
package main import "fmt" import "time" func main() { p := fmt.Println // We'll start by getting the current time. now := time.Now() p(now) // You can build a `time` struct by providing the // year, month, day, etc. Times are always associated // with a `Location`, i.e. time zone. then := time.Date( 2009, 11, 17, 20, 34, 58, 651387237, time.UTC) p(then) // You can extract the various components of the time // value as expected. p(then.Year()) p(then.Month()) p(then.Day()) p(then.Hour()) p(then.Minute()) p(then.Second()) p(then.Nanosecond()) p(then.Location()) // The Monday-Sunday `Weekday` is also available. p(then.Weekday()) // These methods compare two times, testing if the // first occurs before, after, or at the same time // as the second, respectively. p(then.Before(now)) p(then.After(now)) p(then.Equal(now)) // The `Sub` methods returns a `Duration` representing // the interval between two times. diff := now.Sub(then) p(diff) // We can compute the length of the duration in // various units. p(diff.Hours()) p(diff.Minutes()) p(diff.Seconds()) p(diff.Nanoseconds()) // You can use `Add` to advance a time by a given // duration, or with a `-` to move backwards by a // duration. p(then.Add(diff)) p(then.Add(-diff)) }
执行上面代码,将得到以下输出结果 -
F:\worksp\golang>go run time.go 2017-01-21 16:59:10.8307711 +0800 CST 2009-11-17 20:34:58.651387237 +0000 UTC November 58 UTC Tuesday true false false 62916h24m12.179383863s 62916.403383162185 3.774984202989731e+06 2.2649905217938387e+08 2017-01-21 08:59:10.8307711 +0000 UTC 2002-09-14 08:10:46.472003374 +0000 UTC