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. 微信小程序——选择某个区间的数字

    很久没有更新文章啦~~记录下今天弄的一个小功能. 先上图: 需求很简单: 第1列改变的时候,第2列也随着改变,并且比第1列大1k. 这里用到了微信的picker 组件,对于不太熟练这个组件的小伙伴可以 ...

  2. javaWeb开发中entityBean的习惯用法

    entity bean的作用是将与数据库交互的过程封装成对象,在servelet编写的过程中,只需要会写java,不必考虑与数据库交互细节. 实体类: 基本与数据库的表相对应,表示一个实在的对象. 例 ...

  3. WebSocket 实现前后端通信的笔记

    之前在做站内信时,用到了 WebSocket ,整理了一些笔记分享如下.本文基于 SpringBoot 2.1.5,本文不涉及环境搭建. 引入依赖 在 Spring 中要使用 WebSocket 功能 ...

  4. LeetCode 826. Most Profit Assigning Work

    原题链接在这里:https://leetcode.com/problems/most-profit-assigning-work/ 题目: We have jobs: difficulty[i] is ...

  5. HBase 基本入门篇

    无论是 NoSQL,还是大数据领域,HBase 都是非常”炙热”的一门数据库.本文将对 HBase 做一些基础性的介绍,旨在入门. 一.简介 HBase 是一个开源的.面向列的非关系型分布式数据库,目 ...

  6. 洛谷 P4707 重返现世

    洛谷 P4707 重返现世 k-minimax容斥 有这一个式子:\(E(\max_k(S))=\sum_{T\subseteq S}(-1)^{|T|-k}C_{|T|-1}^{k-1}\min(T ...

  7. render函数、createElement函数与vm.$slots

    1.render函数.createElement函数 Vue.component('es-header', { render: function (createElement) { return cr ...

  8. restframework之节流

    基本思路(原生Django而言): 在django2.x中,若出现节流(访问频率控制)的需求,我们首先想到的是使用一个字典(dict类型)来存储所有IP地址的访问时间记录,这是针对于匿名用户(IP)而 ...

  9. Linux /var/log下各种日志文件

    Linux /var/log下各种日志文件:

  10. nodeJs实现文件上传,下载,删除

    转:https://blog.csdn.net/qq_36228442/article/details/81709272 一.简介 本文介绍了nodeJs+express框架下,用multer中间件实 ...