go语言time包的一些使用方法


本文摘自php中文网,作者尚,侵删。

Go的time包是标准库中的包之一

不用说,几乎是开发必须用到的包之一。time包的说明文档在:(推荐:go视频教程)

http://golang.org/pkg/time/

看看godoc文档,最大的数据类型就是Time了,这个Time类型最微小可以表示到nanosecond(微毫秒,十亿份之一秒)。

1.jpg

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是用来显示和计算地区时间的。

下面从几个需求直接看time的使用

1 请打出当前时间的时间戳,然后将时间戳格式为年月日时分秒的形式

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

package main

  

import (

    "fmt"

    "time"

)

  

func main() {

    //时间戳

    t := time.Now().Unix()

    fmt.Println(t)

      

    //时间戳到具体显示的转化

    fmt.Println(time.Unix(t, 0).String())

      

    //带纳秒的时间戳

    t = time.Now().UnixNano()

    fmt.Println(t)

    fmt.Println("------------------")

      

    //基本格式化的时间表示

    fmt.Println(time.Now().String())

      

    fmt.Println(time.Now().Format("2006year 01month 02day"))

  

}

显示:

2.jpg

特别是Format这个函数,可以好好使用

2 输出当前星期几?

1

2

3

4

5

6

7

8

9

10

11

12

13

package main

  

import (

    "fmt"

    "time"

)

  

func main() {

    //时间戳

    t := time.Now()

    fmt.Println(t.Weekday().String())

  

}

3.jpg

文档中对这个Weekday类型就没有说明!!没法,直接看代码可以看到:

4.jpg

Weekday有一个String()方法

好了,看到这里外带我们有一个推测:

当一个结构中有定义String()函数的时候,fmt.Println()是会调用String的

例子如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package main

  

import (

    "fmt"

)

  

type MyStruct struct{

}

  

func (d MyStruct)String() string {return "mystruct"}

  

func main() {

    me := new(MyStruct)

    fmt.Println(me)

  

}

5.jpg

更多go知识请关注go语言教程栏目。

以上就是go语言time包的一些使用方法的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Go1.7里面的bce(跳跃检测排除)(译文)

手撸Golang 行为型设计模式 状态模式

Golang 架构设计原则 单一职责原则

Golang语言学习之数据类型

手撸Golang 行为型设计模式 迭代器模式

聊聊dapr的fswatcher

awesome Go!高玩Gopher都会参考的Go资源集合

聊聊Gost的deltacompare

Golang 之 struct能不能比较

聊聊dubbo-Go-proxy的authorityfilter

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...