sync包

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...");
}
}
}

  

sync包 — 汇总的更多相关文章

  1. go语言中sync包和channel机制

    文章转载至:https://www.bytelang.com/article/content/A4jMIFmobcA= golang中实现并发非常简单,只需在需要并发的函数前面添加关键字"Go&quo ...

  2. ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS)

    ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS) 1. 网站资源: ROSwiki官网:http://wiki.ros.org/cn GitHub    ...

  3. golang 中 sync包的 WaitGroup

    golang 中的 sync 包有一个很有用的功能,就是 WaitGroup 先说说 WaitGroup 的用途:它能够一直等到所有的 goroutine 执行完成,并且阻塞主线程的执行,直到所有的 ...

  4. Go中sync包学习

    前面刚讲到goroutine和channel,通过goroutine启动一个协程,通过channel的方式在多个goroutine中传递消息来保证并发安全.今天我们来学习sync包,这个包是Go提供的 ...

  5. go 锁和sync包

    一.什么是锁? sync.Mutex 是一个互斥锁,它的作用是守护在临界区入口来确保同一时间只能有一个线程进入临界区 在 sync 包中还有一个 RWMutex 锁:他能通过 RLock() 来允许同 ...

  6. golang sync包

    sync 在golang 文档上,golang不希望通过共享内存来进行进程间的协同操作,而是通过channel的方式来进行,当然,golang也提供了共享内存,锁等机制进行协同操作的包: 互斥锁: M ...

  7. R语言常用包汇总

    转载于:https://blog.csdn.net/sinat_26917383/article/details/50651464?locationNum=2&fps=1 一.一些函数包大汇总 ...

  8. Python通过Openpyxl包汇总表格,效率提升100倍

    最近找了份小兼职,干的全是些无聊的工作,比如说给word调整一下排版啦.把从多方回收来的Excel汇总啦,这些极其催眠又耗时的事,怎么能接受手动去做呢!!(疯了嘛,谁知道以后还有多少类似的表格要汇总啊 ...

  9. Java第三方工具库/包汇总

    一.科学计算或矩阵运算库 科学计算包: JMathLib是一个用于计算复杂数学表达式并能够图形化显示计算结果的Java开源类库.它是Matlab.Octave.FreeMat.Scilab的一个克隆, ...

随机推荐

  1. BZOJ 5305: [Haoi2018]苹果树 组合计数

    一定要注意要乘阶乘,细节很多. code: #include <bits/stdc++.h> #define ll long long #define setIO(s) freopen(s ...

  2. Mybatis02

    1.mybatis动态sql   foreach 添加接口方法 编写BookVo类 BookMapper.xml 测试 结果 2.模糊查询 3.查询返回结果集 resultMap:适合使用返回值是自定 ...

  3. circus 进程以及socket 管理工具&&docker运行

    circus 是由mozilla 团队开发基于python 以及zeromq 的进程以及socket 管理的工具,类似supervisord 但是比supervisord 更灵活方便 来自官方的使用比 ...

  4. 探索性数据分析(Exploratory Data Analysis,EDA)

    探索性数据分析(Exploratory Data Analysis,EDA)主要的工作是:对数据进行清洗,对数据进行描述(描述统计量,图表),查看数据的分布,比较数据之间的关系,培养对数据的直觉,对数 ...

  5. tensorflow手写数字识别(有注释)

    import tensorflow as tf import numpy as np # const = tf.constant(2.0, name='const') # b = tf.placeho ...

  6. C语言博客作业—2019-指针

    0.展示PTA总分 1.本章学习总结 1.1学习内容总结 指针做循环变量:即将指针作为循环变量,在指针移动到某一个位置的时候,达到了循环结束的条件,循环结束. for (p = a; p <= ...

  7. 百度编辑器(ueditor)踩坑,图片转存无法使用

    在使用 百度编辑器 的过程中碰到了一些问题,图片转存功能无法使用, 即便是疯狂地在官方 Demo.文档.论坛甚至是 GitHub 上也没找到理想的答案.(┗|`O′|┛) (真是日了狗) 问题描述 默 ...

  8. Linux中root用户找不到JAVA_HOME

    Linux中root用户找不到JAVA_HOME   在Ubuntu环境中安装好Java环境后设置环境变量:在/etc/profile中设置好了JAVA_HOME变量并引入到PATH中,用于Ubunt ...

  9. PG11开启WAL归档

    -创建归档目录 mkdir -p $PGDATA/archive_wals chown -R postgres.postgres $PGDATA/archive_wals -修改参数(在配置文件中配置 ...

  10. 利用detours写了一个工具用于instrument任意指定dll的任意指定函数入口

    目录 wiki Disas Dtest Simple withdll load一个dll到指定进程 tracebld显示相关进程涉及的文件读写操作 My Instrumentation tool: w ...