go语言time包的学习(Time,Location,Duration,Timer,Ticker)
package main;
import ( "time" "fmt")func main() { //time.Time代表一个纳秒精度的时间点 var t time.Time; //返回当前时间 t = time.Now(); fmt.Printf("%v\n", t); //反回所在时区 fmt.Printf("%v\n", t.Location()); //返回UTC时间和UTC时区 fmt.Printf("%v %v\n", t.UTC(), t.UTC().Location()); //同上,In()返回指定时区的时间 fmt.Printf("%v %v\n", t.In(time.UTC), t.In(time.UTC).Location()); //返回当地时区的时间 fmt.Printf("%v %v\n", t.Local(), t.Local().Location()); //根据时间戳返回本地时间 //参数分别表示秒数和纳秒数 t2 := time.Unix(1487780010, 0); fmt.Println(t2); //根据指定时间返回time.Time //分别指定年,月,日,时,分,秒,纳秒,时区 t3 := time.Date(2017, time.Month(5), 26, 15, 30, 20, 0, t.Location()); fmt.Println(t3); //格式化输出时间 t4 := time.Now(); fmt.Println(t4.Format("2006-01-02 15:04:05")); //获取时间信息 t5 := time.Now(); //返回日期 fmt.Println(t5.Date()); //返回年 fmt.Println(t5.Year()); //返回月 fmt.Println(t5.Month()); //返回日 fmt.Println(t5.Day()); //返回星期 fmt.Println(t5.Weekday()); //返回ISO 9601标准下的年份和星期编号 fmt.Println(t5.ISOWeek()); //返回时分秒 fmt.Println(t5.Clock()); //返回小时 fmt.Println(t5.Hour()); //返回分钟 fmt.Println(t5.Minute()); //返回秒 fmt.Println(t5.Second()); //返回纳秒 fmt.Println(t5.Nanosecond()); //返回一年中对应的天 fmt.Println(t5.YearDay()); //返回时区 fmt.Println(t5.Location()); //返回时区的规范名,时区相对于UTC的时间偏移量(秒) fmt.Println(t5.Zone()); //返回时间戳 fmt.Println(t5.Unix()); //返回纳秒时间戳 fmt.Println(t5.UnixNano()); //时间的比较与计算 t6 := time.Now(); //是否零时时间 fmt.Println(t6.IsZero()); //t6时间在t5时间之后,返回真 fmt.Println(t6.After(t5)); //t5时间在t6时间之前,返回真 fmt.Println(t5.Before(t6)); //时间是否相同 fmt.Println(t6.Equal(t6)); //返回t6加上纳秒的时间 fmt.Println(t6.Add(10000)); //返回两个时间之差的纳秒数 fmt.Println(t6.Sub(t5)); //返回t6加1年,1月,1天的时间 fmt.Println(t6.AddDate(1, 1, 1)); //时间的序列化 t7 := time.Now(); //序列化二进制 bin, _ := t7.MarshalBinary(); //反序列化二进制 t7.UnmarshalBinary(bin) fmt.Println(t7); //序列化json json, _ := t7.MarshalJSON(); fmt.Println(string(json)); //反序列化json t7.UnmarshalJSON(json); fmt.Println(t7); //序列化文本 txt, _ := t7.MarshalText(); fmt.Println(string(txt)); //反序列化文本 t7.UnmarshalText(txt); fmt.Println(t7); //gob编码 gob, _ := t7.GobEncode(); t7.GobDecode(gob); fmt.Println(t7); //时间段time.Duration dur := time.Duration(6666666600000); //返回字符串表示 fmt.Println(dur.String()); //返回小时表示 fmt.Println(dur.Hours()); //返回分钟表示 fmt.Println(dur.Minutes()); //返回秒表示 fmt.Println(dur.Seconds()); //返回纳秒表示 fmt.Println(dur.Nanoseconds()); //时区time.Location //返回时区名 fmt.Println(time.Local.String()); //通过地点名和时间偏移量返回时区 fmt.Println(time.FixedZone("Shanghai", 800)); //通过给定时区名称,返回时区 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 { //大于5次关闭打点器 ticker.Stop(); break; } //否则从打点器中获取chan select { case <-ticker.C: num++; fmt.Println("1 second..."); } }}go语言time包的学习(Time,Location,Duration,Timer,Ticker)的更多相关文章
- go语言log包的学习(log,Logger)
package main; import ( "log" "os" "time" "fmt" ) func main() ...
- go语言sync包的学习(Mutex、WaitGroup、Cond)
package main; import ( "fmt" "sync" "runtime" "time" ) //加锁, ...
- go语言path包和filepath包的学习与使用
path包的使用 package main; import ( "fmt" "path" ) //go语言path包的学习 func main() { //返回 ...
- R语言 ggplot2包
R语言 ggplot2包的学习 分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将 ...
- R语言-神经网络包RSNNS
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
- R语言-Knitr包的详细使用说明
R语言-Knitr包的详细使用说明 by 扬眉剑 来自数盟[总舵] 群:321311420 1.相关资料 1:自动化报告-谢益辉 https://github.com/yihui/r-ninja/bl ...
- R语言扩展包dplyr——数据清洗和整理
R语言扩展包dplyr——数据清洗和整理 标签: 数据R语言数据清洗数据整理 2015-01-22 18:04 7357人阅读 评论(0) 收藏 举报 分类: R Programming(11) ...
- go mod 解决 Go 语言的包依赖问题
转:https://testerhome.com/topics/16980 https://testerhome.com/ -------------------------------------- ...
- Java语言Lang包下常用的工具类介绍_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 无论你在开发哪中 Java 应用程序,都免不了要写很多工具类/工具函数.你可知道,有很多现成的工具类可用,并且代码质量都 ...
随机推荐
- 【.net】未能加载文件或程序集“System.Web.Mvc, Version=5.2.2.0
#车祸现场 未能加载文件或程序集“System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或 ...
- 1.单件模式(Singleton Pattern)
创建型模式---单件模式(Singleton Pattern)动机(Motivation): 在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性. ...
- 基于zookeeper(集群)+LevelDB的ActiveMq高可用集群安装、配置、测试
一. zookeeper安装(集群):http://www.cnblogs.com/wangfajun/p/8692117.html √ 二. ActiveMq配置: 1. ActiveMq集群部署 ...
- Windows Azure中国版试用
Winodws Azure刚出来那会都没怎么关注,就在一些网页新闻上见过一些报道,之前阿里云在博客里搞过推广,拿什么豆可以换,当时也就是看了一下没去用过. 有次在一群里别人说Windows Azure ...
- Storm基本原理概念及基本使用
1. 背景介绍 1.1 离线计算是什么 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示: 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.H ...
- 混合app开发--js和webview之间的交互总结
使用场景:原生APP内嵌套H5页面,app使用的是webview框架进行嵌套 这样就存在两种情况 1.原生app调用H5的方法 2.H5调用app的方法 分别讲解下,其实app与H5之间的交互式非常简 ...
- 用python实现单向链表
单向链表 单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域.这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值. 表元素域ele ...
- webpack 内存溢出 Allocation failed - JavaScript heap out of memory
项目中,当组件文件过多,webpack-dev-server 编译时,容易内存溢出, 在 \node_modules\.bin\webpack-dev-server.cmd 加以下红色配置,暂可解决 ...
- electron入门
Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js合并到同一个运行时环境中,并 ...
- 调用wait的SIGCHLD信号处理函数
#include <stdio.h> #include <sys/wait.h> void sig_chld(int signo) { pid_t pid; int stat; ...