网站首页
手机版

Go to Learn Go之时间日期 go 时间格式

更新时间:2024-08-08 13:16作者:小乐

如果您想阅读最新文章,或者有技术问题需要沟通,可以搜索并关注微信公众号“希望智慧”。

概述上一节我们介绍了Go的Gob,包括:Gob介绍、Gob编码、Gob解码等。本节我们将介绍Go中的时间和日期。 Go语言提供了一组强大的时间和日期处理库,使处理时间和日期变得简单高效。 Go 语言中处理日期和时间的常用方法是使用time 包。该包提供了很多日期和时间操作的函数,包括:获取当前时间、格式化时间、计算时差、处理时区等。

time 包time 包提供了许多处理日期和时间的函数。以下是一些常用的功能。 time.Now(): 返回当前时间,类型为time.Time。 time.Parse(layout, value): 将字符串解析为时间并返回时间对象。布局是日期和时间布局字符串,指定输入字符串的格式。 time.Date(year,month,day,hour,min,sec,nansec,loc): 返回指定日期和时间的时间对象。 time.Add(duration): 返回一个时间对象加上给定持续时间的时间对象。 time.Sub(t time.Time): 返回两个时间之间的时间差。 time.Since(t time.Time): 返回从指定时间到当前时间的持续时间。 time.Until(t time.Time): 返回从当前时间到指定时间的持续时间。 time.In(loc *time.Location): 将时间转换为指定时区的时间。 time.Now().Format(format string): 将当前时间格式化为指定的字符串形式。 format 是日期和时间格式字符串,用于指定输出格式。 time.ParseDuration(durationStr string)uration: 将字符串解析为持续时间并返回持续时间对象。

格式化日期在下面的示例代码中,我们首先通过time.Now() 函数获取当前时间。然后,通过Format()函数将当前时间格式化为指定的字符串形式。最后,我们将时间作为字符串打印出来。

package mainimport ( 'fmt' 'time')func main() { //获取当前时间currentTime :=time.Now() //输出: 2023-11-26 15:01:26.4162829 +0800 CST m=+0.002639401 fmt.Println( currentTime ) //格式化时间timeString :=currentTime.Format('2006-01-02 15:04:05') //输出: 2023-11-26 15:01:26 fmt.Println(timeString)}

日期字符串解析在下面的示例代码中,我们使用time.Parse() 函数将字符串形式的日期解析为time.Time 类型的时间。

package mainimport ( 'fmt' 'time')func main() { //日期字符串解析为时间对象dateString :='2023-11-26 15:50:45' //格式字符串必须与输入日期字符串匹配布局:='2006-01-02 15:04:05' date, err :=time.Parse(layout, dateString) if err !=nil { fmt.Println(err) return } //输出:2023-11- 26 15:50:45 + 0000 UTC fmt.Println(日期)}

计算日期差在下面的示例代码中,我们首先通过time.Now() 函数获取当前时间,并将其作为开始时间。然后,在开始时间上加上6 小时作为结束时间。接下来,我们通过time.Sub()函数计算开始时间和结束时间之间的时间差。最后我们还计算了开始时间到当前时间的时间差以及当前时间到结束时间的时间差,并打印出来。

package mainimport ( 'fmt' 'time')func main() { startTime :=time.Now() //结束时间为开始时间后6 小时endTime :=startTime.Add(6 * time.Hour)uration :=endTime.Sub(startTime) //输出时差的小时数,输出:6 fmt.Println(duration.Hours())uration=time.Since(startTime) //计算与开始时间的时差到当前时间,输出:531.6s fmt.Println(duration)uration=time.Until(endTime) //计算当前时间到结束时间的时间差,输出:5h59m59.9994684s fmt.Println(duration)}

时区操作在下面的示例代码中,我们使用time.LoadLocation 函数加载名为“America/New_York”的时区信息。如果加载成功,我们将当前时区的时间转换为纽约时区的时间。

package mainimport ( 'fmt' 'time')func main() { //加载指定时区信息位置,err :=time.LoadLocation('America/New_York') if err !=nil { fmt.Println(err) return } currenTime :=time.Now() //输出当前时区的时间:2023-11-26 15:26:11.3579989 +0800 CST m=+0.003050601 fmt.Println(currenTime) //将当前时间转换为中的时间指定时区currentTimeLoc :=time .Now().In(location) //输出纽约时区时间: 2023-11-26 02:26:11.3706785 -0500 EST fmt.Println(currentTimeLoc)}

定时任务在Go语言中,time.Tick函数用于定期生成时间间隔。它返回一个通道,每次经过指定的时间间隔时都会在该通道上接收时间值。 time.Tick 函数的语法如下: func Tick(d Duration) -chan time.Time 其中d 参数指定生成的时间间隔的持续时间。该函数返回一个通道,每次持续时间过去时都会在该通道上接收时间值。在下面的示例代码中,我们使用time.Tick 函数创建一个每2 秒生成一个时间值的通道。通过使用for range 循环迭代通道,我们可以每2 秒打印出当前时间的值。

package mainimport ( 'fmt' 'time')func main() { //每2 秒输出一次当前时间Ticker :=time.Tick(2 * time.Second) for range Ticker { fmt.Println(time.Now ( )) }}

为您推荐

纽约时间比加州时间早三个小时,纽约时间比加州时间早三个小时原文

图片来自网络纽约时间比加州时间早三个小时, New York is 3 hours ahead of California, 但加州时间并没有变慢。 but it does not make California slow. 有人22岁就毕

2024-08-08 13:16

巴黎奥运赛事时间转换指南:全球观众的观赛助手,巴黎奥运会资格赛时间

为何需要时间转换指南?巴黎奥运会的圣火即将点燃,全球观众的目光都将聚焦在这场盛大的体育赛事上。然而,由于巴黎位于中欧时间(CET),与全球各地的时间差可能会给非中国地区的观众带来不小的观赛困扰。本文旨在为国际观众提供一份详尽的巴黎奥运会赛事

2024-08-08 13:15

纽约时间VS加州时间,纽约时间vs加州时间几点

​纽约时间比加州时间早三个小时,New York is 3 hours ahead of California,但加州时间并没有变慢。but it does not make California slow.有人22岁就毕业了,Someon

2024-08-08 13:15

诚然,每个人都有自己的时区(每个人都有自己的时区演讲原文)

01余生,靠近能滋养你的人荀子说:蓬生麻中,不扶而直;白沙在涅,与之俱黑。对的人,能相互滋养;错的人,带来的只有消耗。和什么样的人在一起,就会有什么样的命运。在有限的生命中,远离负面情绪满满的人,多和积极乐观的人在一起,才能活得丰盈富足,过

2024-08-08 13:14

美国各地与中国的时差(美国时差和中国时差相差几个小时)

在美国的小伙伴们联系国内小伙伴的时候记得注意时差变化哦!1️⃣美国夏令时与中国时间之间的时差:✅Eastern Time/美东时间(纽约、迈阿密等)与中国时差为-12小时,Central Time/中部时间(芝加哥、休斯顿等)时差为-13小

2024-08-08 13:14

中美有12小时的时差,但谁的时间更早?(中美时间差是什么原因)

在我们的地球上,时间会以独特的方式转动,这就造成了一个独特的现象,不同地方的时间也会有所不同,很多人都知道中美两国有12个小时的时差,但很多人却不知道是中国时间更早还是美国时间更早。普通人在不知道具体的情况下会怎么认为呢,我问了家人和同事,

2024-08-08 13:13

加载中...