温馨提示×

温馨提示×

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

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

golang中的time模块怎么用

发布时间:2022-02-19 10:34:02 来源:亿速云 阅读:130 作者:小新 栏目:开发技术

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


一、time的常用示例

打印当前时间戳

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

str格式化时间

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

时间戳转str格式化时间

str_time := time.Unix(1389058332, 0).Format("2006-01-02 15: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-02 15:04:05", "2014-01-08 09:04:41")if err == 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,然后分别执行如下代码,看下输出的区别:

package main
import "time"import "fmt"func main(){
t, err := time.Parse("2006-01-02 15:04:05", "2017-12-03 22:01:02")
//localTime, err := time.ParseInLocation("2006-01-02 15:04:05", "2017-12-03 22:01:02", time.Local)if err != nil{
fmt.Println(err)return}
fmt.Println(t)
fmt.Println(time.Now())
fmt.Println(time.Now().Sub(t).Seconds())
}

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

三、再一个示例

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

package main
import("fmt""time")
func main(){
t := time.Now()
y,m,d := t.Date()
today := time.Now().Format("2006-01-02")
datetime := time.Now().Format("2006-01-02 15:04:05")//后面的参数是固定的 否则将无法正常输出
fmt.Println("time is : ",t )
fmt.Println("y m d is : ",y,m,d )
fmt.Println("now is :",today)
fmt.Println("now is :",datetime)
}

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

向AI问一下细节

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

AI