本文摘自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( "" )
timeLocation, _ = time.LoadLocation( "UTC" )
timeLocation, _ = time.LoadLocation( "Local" )
timeLocation, _ = time.LoadLocation( "Asia/Shanghai" )
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.In(timeLocation)
|
获取秒级时间戳/纳秒级时间戳
1 2 3 4 5 6 7 8 9 | var curTimestamp int64
curTimestamp = timer.Unix()
println( "current timestamp:" + strconv.FormatInt(curTimestamp, 10))
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())
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》频道 >>
老貘
一个与时俱进的Go编程知识库。
转载请注明出处:木庄网络博客 » golang如何设置时间