golang如何设置时间


本文摘自php中文网,作者尚,侵删。

在我们编程过程中,经常会用到与时间相关的各种务需求,下面来介绍 golang 中有关时间的一些基本用法。

golang可以使用日期时间包time设置时间,golang的日期时间包time的使用方式:

1、time package 包含了 time.Time 时间对象 及 构建此时间对象的一些方法(time.Unix(), time.Parse())

2、golang 可精确到 nanosecond,故相应的函数返回值或参数都已纳秒为单位,我们可以借助time.ParseDuration(durationString string)友好的生成纳秒度量的时间跨度值

3、golang 的时间格式串Layout固定为 2006-01-02 15:04:05

4、golang 默认使用 Local 即本地时区,可以通过 time.LoadLocation(zoneName string) (*Location, error)来设定时区

时区构建/格式化模式串

time.LoadLocation 可以加载并返回一个时区变量

golang 使用2006-01-02 15:04:05做格式串,有人说是golang诞生时间,也有的说按月/日/时/分/秒/年的话是01/02/03(15-12)/04/05/06(2006),大家自行理解吧

1

2

3

4

5

6

7

8

// 构建时区

var timeLocation *time.Location

timeLocation, _ = time.LoadLocation("")              //UTC

timeLocation, _ = time.LoadLocation("UTC")           //UTC

timeLocation, _ = time.LoadLocation("Local")         //Local

timeLocation, _ = time.LoadLocation("Asia/Shanghai") //使用时区码

//golang的时间格式化pattern

var timeLayout = "2006-01-02 15:04:05"

当前时间对象

使用 time.Now() 方法可以获取当前时间对象,时间对象通过 time.Now().In()方法设定时区,也可通过timer.Local()/timer.UTC()生成一个相应时区的新的时间对象。

1

2

3

4

5

6

// 获取当前时间对象

var timer time.Time

timer = time.Now()

 

// 为时间设定时区 可以通过 timer.Local()/timer.UTC() 快速设定时区

timer.In(timeLocation)

获取秒级时间戳/纳秒级时间戳

1

2

3

4

5

6

7

8

9

// 获取当前秒级时间戳

var curTimestamp int64

curTimestamp = timer.Unix()

println("current timestamp:" + strconv.FormatInt(curTimestamp, 10))

 

// 获取当前纳秒及时间戳 1秒=1000毫秒=1000,000微妙=1000,000,000纳秒

var curNanoTimestamp int64

curNanoTimestamp = timer.UnixNano()

println("current nano timestamp:" + strconv.FormatInt(curNanoTimestamp, 10))

获取本地时间的时区/CST标准时间/自定义格式

1

2

3

4

5

6

7

8

// 获取本地时间的时区/快速获取时区时间/自定义格式

timeZone, _ := timer.Zone()

fmt.Printf("time zone: %s\n", timeZone)

fmt.Printf("time location: %s\n", timer.Location())

fmt.Printf("time in local zone: %s\n", timer.Local().String())

fmt.Printf("time in utc zone: %s\n", timer.UTC().String())

fmt.Printf("time: %s\n", timer.String())

fmt.Printf("time formatted: %s\n", timer.Format("2006-01-02 15:04:05")

获取当前的年/月/日 时:分:秒 纳秒

1

2

3

4

5

6

7

8

// 获取当前的年/月/日 时:分:秒 纳秒

fmt.Printf("current year: %d\n", timer.Year())

fmt.Printf("current month: %d %s\n", timer.Month(), timer.Month()) //返回的Month对象

fmt.Printf("current day: %d\n", timer.Day())

fmt.Printf("current hour: %d\n", timer.Hour())

fmt.Printf("current minute: %d\n", timer.Minute())

fmt.Printf("current second: %d\n", timer.Second())

fmt.Printf("current nanosecond: %d\n", timer.Nanosecond())

获取当前时间/日期

1

2

3

4

5

// 获取当前时间/日期

curHour, curMinute, curSecond := timer.Clock()

fmt.Printf("current clock: %d:%02d:%02d\n", curHour, curMinute, curSecond)

curYear, curMonth, curDay := timer.Date()

fmt.Printf("current date: %d-%02d-%02d\n", curYear, curMonth, curDay)

编辑时间/求两个日期的时间差

阅读剩余部分

相关阅读 >>

中国身份证号验证库

手撸golang go与微服务 grpc

go-interface

一个守护进程执行的问题

golang如何获取目录下文件是否存在

【go从学会到学废】(零) golang简介

golang获取当前时间是第几周

手撸golang etcd raft协议之3

剑指 offer-斐波那契数列

go语言之并发

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...