重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关golang中time包的使用方法,文章内容质量较高,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联公司-专业网站定制、快速模板网站建设、高性价比洞头网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式洞头网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖洞头地区。费用合理售后完善,10多年实体公司更值得信赖。
时间和日期是我们编程中经常会用到的,time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。
不用说,几乎是开发必须用到的包之一。time包的说明文档在:
http://golang.org/pkg/time/
看看godoc文档,最大的数据类型就是Time了,这个Time类型最微小可以表示到nanosecond(微毫秒,十亿份之一秒)。
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")) }
显示:
特别是Format这个函数,可以好好使用
2 输出当前星期几?
package main import ( "fmt" "time" ) func main() { //时间戳 t := time.Now() fmt.Println(t.Weekday().String()) }
文档中对这个Weekday类型就没有说明!!没法,直接看代码可以看到:
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包的使用方法,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注创新互联行业资讯,感谢各位的阅读。