Go提供了对时间值和时间段的广泛支持;下面是一些示例。
Now可以获取当前时间结构。Date也可以通过提供年、月、日等来构建时间结构。时间始终与地点关联,例如所在的时区。可以按预期提取时间值的各个组成部分。可以测试时间的前后或是否相等。
Sub方法返回两个时间的时间差。可以计算各种单位(时,分、秒等)的时间差长度。可以使用Add增加或减少时间差。
结果:
$ 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
Epoch 纪元程序中的一个常见要求是获取Unix纪元以来的秒数、毫秒数或纳秒数。在Go中执行实现这些操作的方法是使用time包中的函数。
使用Unix或UnixNano分别获取Unix纪元以来的运行时间数值(秒或纳秒)。请注意,不存在UnixMillis,因此,要获得纪元以来的毫秒数,您需要手动从纳秒数中除出来。您还可以将纪元中的整数秒或纳秒数转换为相应的可读的时间字符串格式。
结果:
$ 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
Time Formatting / Parsing 时间格式化/分析Go支持对时间Format格式化以及对时间字符串基于模式的布局分析time.Parse。下面是使用RFC3339对应的时间布局模式常量来对时间数值进行格式化的基本示例。以及使用相同的布局常量来对时间字符串进行分析的示例。通常通常情况下,使用time包中的布局常量,但也可以提供自定义布局模式。
如下所示,使用布局模式Mon Jan 2 15:04:05 MST 2006来作为格式化时间数或分析时间字符串的参考。
还可以对时间值的组件使用标准的字符串格式,生成时间字符串。
Parse对不合法的时间格式的输入返回错误,解释了分析时出现的问题。
结果:
$ 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": ...
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved