小编给大家分享一下golang中的time模块怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!


一、time的常用示例

打印当前时间戳

fmt.Println(time.Now().Unix())#1389058332

str格式化时间

fmt.Println(time.Now().Format("2006-01-0215:04:05"))#这是个奇葩,必须是这个时间点,据说是go诞生之日,记忆方法:6-1-2-3-4-5#2018-08-2509:42:20

时间戳转str格式化时间

str_time:=time.Unix(1389058332,0).Format("2006-01-0215:04:05")fmt.Println(str_time)str格式化时间转时间戳

WAR包

the_time:=time.Date(2014,1,7,5,50,4,0,time.Local)unix_time:=the_time.Unix()fmt.Println(unix_time)#1389045004

time.Parse格式化时间

the_time,err:=time.Parse("2006-01-0215:04:05","2014-01-0809:04:41")iferr==nil{unix_time:=the_time.Unix()fmt.Println(unix_time)}#1389171881二、time.Parse和time.Format的区别

在windows下,time.Parse()的时区和time.Format()的时区是一致的。但是在linux环境下,time.Parse()的默认时区是UTC(与我们使用的标准时间CST相差8个小时),time.Format()的时区默认是本地,两者如果不处理好就会导致错误。具体可以做如下一个操作,找一台linux主机,将其/etc/localtime由Shanghai更换为UTC,然后分别执行如下代码,看下输出的区别:

packagemainimport"time"import"fmt"funcmain(){t,err:=time.Parse("2006-01-0215:04:05","2017-12-0322:01:02")//localTime,err:=time.ParseInLocation("2006-01-0215:04:05","2017-12-0322:01:02",time.Local)iferr!=nil{fmt.Println(err)return}fmt.Println(t)fmt.Println(time.Now())fmt.Println(time.Now().Sub(t).Seconds())}

分别使用time.Parse和time.ParseInLocation分别算下两个时间之间的差值,看下哪一个求出的值是正确的?

三、再一个示例

最后再给出一个输出当前时间年、月、日、时等不同信息的示例代码,如下:

packagemainimport("fmt""time")funcmain(){t:=time.Now()y,m,d:=t.Date()today:=time.Now().Format("2006-01-02")datetime:=time.Now().Format("2006-01-0215:04:05")//后面的参数是固定的否则将无法正常输出fmt.Println("timeis:",t)fmt.Println("ymdis:",y,m,d)fmt.Println("nowis:",today)fmt.Println("nowis:",datetime)}

看完了这篇文章,相信你对“golang中的time模块怎么用”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!