Go语言学习基础-时间、纪元、时间格式化与分析

Go语言学习基础-时间、纪元、时间格式化与分析

首页角色扮演纪元时代EPOCH更新时间:2024-05-11
时间

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