Toggle Navigation
首页
Golang
PHP
Laravel
Magento
Linux
数据库
MySQL
Redis
Mongodb
热门知识
程序与生活
架构师之路
静态站点
GitHub
主页
Golang time包详解
Golang time包详解
10-23
Mark
1041
``` package main import ( "fmt" "time" ) func main(){ //time.Time代表一个纳秒精度的时间点 var t time.Time //返回当前时间:2017-10-23 19:16:25.3599073 +0800 CST t = time.Now() fmt.Printf("%v\n", t) //返回所在时区:Local fmt.Printf("%v\n", t.Location()) //返回UTC时间和UTC时区:2017-10-23 11:16:25.3599073 +0000 UTC UTC fmt.Printf("%v %v\n", t.UTC(), t.UTC().Location()) //同上,In()返回指定时区的时间:2017-10-23 11:16:25.3599073 +0000 UTC UTC fmt.Printf("%v %v\n", t.In(time.UTC), t.In(time.UTC).Location()) //返回当地时区的时间:2017-10-23 19:16:25.3599073 +0800 CST Local fmt.Printf("%v %v\n", t.Local(), t.Local().Location()) //根据时间戳返回本地时间,参数分别表示秒数和纳秒数 //2017-02-23 00:13:30 +0800 CST t2 := time.Unix(1487780010, 0) fmt.Println(t2) //根据指定时间返回time.Time,分别指定年,月,日,时,分,秒,纳秒,时区 //2017-05-26 15:30:20 +0800 CST t3 := time.Date(2017, time.Month(5), 26, 15, 30, 20, 0, t.Location()) fmt.Println(t3) //格式化输出时间:2017-10-23 19:16:25 t4 := time.Now() fmt.Println(t4.Format("2006-01-02 15:04:05")) //获取时间信息:2017 October 23 t5 := time.Now() //返回日期:2017 October 23 fmt.Println(t5.Date()) //返回年:2017 fmt.Println(t5.Year()) //返回月:October fmt.Println(t5.Month()) //返回日:23 fmt.Println(t5.Day()) //返回星期:Monday fmt.Println(t5.Weekday()) //返回ISO 9601标准下的年份和星期编号:2017 43 fmt.Println(t5.ISOWeek()) //返回时分秒:19 16 25 fmt.Println(t5.Clock()) //返回小时:19 fmt.Println(t5.Hour()) //返回分钟:16 fmt.Println(t5.Minute()) //返回秒:25 fmt.Println(t5.Second()) //返回纳秒:381921400 fmt.Println(t5.Nanosecond()) //返回一年中对应的天:296 fmt.Println(t5.YearDay()) //返回时区的规范名,时区相对于UTC的时间偏移量(秒):CST 28800 fmt.Println(t5.Zone()) //返回时间戳:1508757385 fmt.Println(t5.Unix()) //返回纳秒时间戳:1508757385381921400 fmt.Println(t5.UnixNano()) //时间的比较与计算 t6 := time.Now() //是否零时时间:false fmt.Println(t6.IsZero()) //t6时间在t5时间之后,返回真:true fmt.Println(t6.After(t5)) //t5时间在t6时间之前,返回真:true fmt.Println(t5.Before(t6)) //时间是否相同:true fmt.Println(t6.Equal(t6)) //返回t6加上纳秒的时间:2017-10-23 19:16:25.383933 +0800 CST fmt.Println(t6.Add(10000)) //返回两个时间之差的纳秒数:2.0016ms fmt.Println(t6.Sub(t5)) //返回t6加1年,1月,1天的时间:2018-11-24 19:16:25.383923 +0800 CST fmt.Println(t6.AddDate(1, 1, 1)) //时间的序列化 t7 := time.Now() //序列化二进制 bin, _ := t7.MarshalBinary() //反序列化二进制:2017-10-23 19:16:25.383923 +0800 CST t7.UnmarshalBinary(bin) fmt.Println(t7) //序列化json:"2017-10-23T19:16:25.383923+08:00" json, _ := t7.MarshalJSON() fmt.Println(string(json)) //反序列化json:2017-10-23 19:16:25.383923 +0800 CST t7.UnmarshalJSON(json) fmt.Println(t7) //序列化文本:2017-10-23T19:16:25.383923+08:00 txt, _ := t7.MarshalText() fmt.Println(string(txt)) //反序列化文本:2017-10-23 19:16:25.383923 +0800 CST t7.UnmarshalText(txt) fmt.Println(t7) //gob编码:2017-10-23 19:16:25.383923 +0800 CST gob, _ := t7.GobEncode() t7.GobDecode(gob) fmt.Println(t7) //时间段time.Duration dur := time.Duration(6666666600000) //返回字符串表示:1h51m6.6666s fmt.Println(dur.String()) //返回小时表示:1.8518518333333334 fmt.Println(dur.Hours()) //返回分钟表示:111.11111 fmt.Println(dur.Minutes()) //返回秒表示:6666.6666 fmt.Println(dur.Seconds()) //返回纳秒表示:6666666600000 fmt.Println(dur.Nanoseconds()) //时区time.Location,返回时区名:local fmt.Println(time.Local.String()) //通过地点名和时间偏移量返回时区:Shanghai fmt.Println(time.FixedZone("Shanghai", 800)) //通过给定时区名称,返回时区:Asia/Shanghai loc, _ := time.LoadLocation("Asia/Shanghai") fmt.Println(loc) //阻塞当前进程3秒 time.Sleep(time.Second * 3) //定时器time.Timer,创建一个1秒后触发定时器 timer1 := time.NewTimer(time.Second * 1) <-timer1.C fmt.Println("timer1 end") //1秒后运行函数 time.AfterFunc(time.Second * 1, func() { fmt.Println("wait 1 second") }) time.Sleep(time.Second * 3) //打点器time.Ticker,创建一个打点器,在固定1秒内重复执行 ticker := time.NewTicker(time.Second) num := 1 for { if num > 5 { ticker.Stop() break } select { case <-ticker.C: num++ fmt.Println("1 second...") } } } ```
最新文章
Golang内存问题处理
WebSocket详解
Gopher面试中的Coding(三)
Golang用os/signal包实现平滑重载配置文件
Nginx实现负载均衡的几种方式
Golang中子goroutine与主协程同步的四种实现
Dockerfile文件详解
Golang开发微信公众号
最热文章
Magento实现下载csv数据表格
1815
Laravel带有条件搜索的分页
1716
Magento上传文件、缩略图和导出CSV
1705
Magento添加Advanced Dataflow
1655
Golang开发微信公众号
1590
Magento后台添加rule规则
1560
Magento优化 – MySQL读写分离
1525
Magento常用模块分享
1419
热门标签
下载
laravel分页
上传
导出
Dataflow
微信公众号
rule
规则
读写分离
模块
shell
正则
Collection
binlog
命名空间
内存泄漏
处理
Git
string
解锁
锁表
composer
事务处理
函数
redis sentinel
time
架构
系统
package
读写
事务处理
缓存
日志分析
进阶
golang
表分割
schedule
fmt
事务
分布式锁
交叉编译
HTTPS
日志分割
Gopher面试
Dockerfile
channel
mongodb
git服务器
gogs
多数据库
重载配置
负载均衡
日志过滤
php
protobuf
发展方向
版本号
模型关系
goroutine
concat
json
mongodb
get
post
defer
panic
golang算法
docker
elasticsearch
算法
代码部署
rpc
redis
写文件
protobuf
主从配置
websocket
laravel
package
并发
量级
curl
生成插件
直接下载
数据类型
Shell
错误传递
grpc
成长
Go指针
参数
protobuf
队列
方法
Redis持久化
路上
风景
yum