golang中time包的使用方法

发布时间:2020-06-23 15:54:25 作者:元一
来源:亿速云 阅读:263

这篇文章将为大家详细讲解有关golang中time包的使用方法,文章内容质量较高,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

时间和日期是我们编程中经常会用到的,time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。

不用说,几乎是开发必须用到的包之一。time包的说明文档在:

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

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

golang中time包的使用方法

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 请打出当前时间的时间戳,然后将时间戳格式为年月日时分秒的形式

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"))
 
}

显示:

golang中time包的使用方法

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

2 输出当前星期几?

package main
 
import (
    "fmt"
    "time"
)
 
func main() {
    //时间戳
    t := time.Now()
    fmt.Println(t.Weekday().String())
 
}

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

golang中time包的使用方法

Weekday有一个String()方法

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

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

例子如下:

package main
 
import (
    "fmt"
)
 
type MyStruct struct{
}
 
func (d MyStruct)String() string {return "mystruct"}
 
func main() {
    me := new(MyStruct)
    fmt.Println(me)
 
}

golang中time包的使用方法

以上就是golang中time包的使用方法,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注亿速云行业资讯,感谢各位的阅读。

推荐阅读:
  1. golang语言渐入佳境[28]-time包核心方法
  2. golang中之strconv包的具体使用方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

golang time包 tim

上一篇:配置mongodb副本集

下一篇:js如何实现mp3录音通过websocket实时传送+简易波形图效果?

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》