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 应用程序,都免不了要写很多工具类/工具函数.你可知道,有很多现成的工具类可用,并且代码质量都 ...
随机推荐
- 用go实现一个redis-cli
转载文章:https://my.oschina.net/liangwt/blog/2231557?origin= 代码样例:https://github.com/liangwt/redis-cli
- hive metastore && hiveserver2 . 基本配置
<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-s ...
- twitter分布式主键id生成器
pom <!--生成id--> <dependency> <groupId>com.github.bingoohuang</groupId> <a ...
- python 面向对象(三)类与类之间的关系 初始化方法一些类
###################总结################# 面试的时候 让写python一些特殊方法 __init__ 创建对象的时候初始化 __new__对象实例化调用第一个方法 ...
- idea上使用maven模块开发
使用maven模块开发: 使用Maven构建多模块项目 在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为common(域模型层).dao(数据库访问层).s ...
- GIT与SVN的比较
Git: 1. 分布式版本控制2. 不需要网络,本地就可以操作版本控制3. 可以是公用的,可以分享4. 不依赖于中央服务器,即使服务器有问题也不会有影响5. 传输方式不一样,git要比svn快很多6. ...
- 五.HashTable原理及实现学习总结
有两个类都提供了一个多种用途的hashTable机制,他们都可以将可以key和value结合起来构成键值对通过put(key,value)方法保存起来,然后通过get(key)方法获取相对应的valu ...
- C++使用libcurl
1.下载地址https://curl.haxx.se/download.html 2.选择zip压缩包下载 3.选择合适自己的vc版本 4.启动项目选择libcurl 5.因为暂时不需要ssh2,预处 ...
- 设计前沿:16款扁平风格 iOS 7 图标设计
最新发布的 iOS 7 抛弃了曾经倍受追捧的拟物化设计,采用扁平化,极简设计的界面.对于 iOS 平台来说,采用没有阴影的平面设计其实是有道理的.以前的屏幕分辨率有限,必要的阴影可以填补小尺寸,分辨率 ...
- 常用.net反编译替换正则表达式
.set_([^\(]*) .$ = ------------------ .get_([^\(]*)\(\) .$ ------------------ .get_Item\(([a-z|-]+)\ ...