go语言的碎片整理:time
时间和日期是我们编程中经常用到的,本文主要介绍了go语言内置的time包的基本用法。
go语言中导入包
单行导入
import "time"
import "fmt"
多行导入
import (
"fmt"
"time"
)
time包
time.time类型表示时间。
func main(){
now := time.now()
fmt.printf("current time is :%v\n",now)
year := now.year()
month := now.month()
day := now.day()
hour := now.hour()
minute:= now.minute()
second := now.second()
fmt.printf("%d-%02d-%02d %02d:%02d:%02d\n",year,month,day,hour,minute,second)
}
时间戳
时间戳是自1970年1月1日(08:00:00gmt)至当前时间的总毫秒数。它也被为unix时间戳。
func timestampdemo() {
now := time.now() //获取当前时间
timestamp1 := now.unix() //时间戳
timestamp2 := now.unixnano() //纳秒时间戳
fmt.printf("current timestamp1:%v\n", timestamp1)
fmt.printf("current timestamp2:%v\n", timestamp2)
}
使用time.unix()函数将时间戳转为时间格式。
func timestampdemo2(timestamp int64) {
timeobj := time.unix(timestamp, 0) //将时间戳转为时间格式
fmt.println(timeobj)
year := timeobj.year() //年
month := timeobj.month() //月
day := timeobj.day() //日
hour := timeobj.hour() //小时
minute := timeobj.minute() //分钟
second := timeobj.second() //秒
fmt.printf("%d-%02d-%02d %02d:%02d:%02d\n", year, month, day, hour, minute, second)
}
定时器
使用time.tick(时间间隔),来设置定时器。
func tickdemo(){
ticker := time.tick(time.second)
for i:=range ticker{
fmt.println(i)
}
}
时间间隔
duration类型代表两个时间点之间经过的时间,以纳秒为单位。可表示的最长时间段大约为290年。定义时间间隔常量如下:
const (无锡妇科医院哪家好 http://www.xasgyy.net/
nanosecond duration =1
microsecond =1000*nanosecond
millisecond =1000*microsecond
second =1000*millisecond
minute =60*second
hour =60*minute
)
例如:time.duration 表示1纳秒,time.second表示1秒。
时间加时间间隔
我们在日常的编码过程中可能会遇到要求时间+时间间隔的需求,go语言的时间对象有提供add方法如下:
func (t time) add(d duration) time
举个例子,求一个小时之后的时间:
func main(){
now := time.now()
later := now.add(time.hour)
fmt.println(later)
}
两个时间相减
求两个时间之间的差值:
func (t time) sub(u time) duration