一、基本使用

①从属于time这个包

②一般使用都是使用

time.Time 这个类型表示时间 ,time包中还有一些常量,源码如下

// Common durations. There is no definition for units of Day or larger
// to avoid confusion across daylight savings time zone transitions.
//
// To count the number of units in a Duration, divide:
// second := time.Second
// fmt.Print(int64(second/time.Millisecond)) // prints 1000
//
// To convert an integer number of units to a Duration, multiply:
// seconds := 10
// fmt.Print(time.Duration(seconds)*time.Second) // prints 10s
//
const (
Nanosecond Duration = 1
Microsecond = 1000 * Nanosecond
Millisecond = 1000 * Microsecond
Second = 1000 * Millisecond
Minute = 60 * Second
Hour = 60 * Minute
)

  

③ time.Now() 获取当前的时间,返回的是Time类型

Time类型中的

  Year() 获取当前的年份

  Month() 获取当前的月份

  Day() 获取当前的日期

  Hour() 获取当前小时

  Minute() 获取当前分钟

  Second() 获取当前秒

④常用 Unix() 方法获取时间戳信息

⑤通过AddDate()方法增加指定日期,Add方法增加指定时间

举个例子:

①打印时间基础信息

func DateTimeBasic() time.Time{
now:=time.Now() fmt.Printf("%v\n",now) year:=now.Year()
month:=now.Month()
day:=now.Day()
hour:=now.Hour()
minute:=now.Minute()
send:=now.Second() fmt.Printf("%02d/%02d/%02d %02d:%02d:%02d\n",year,month,day,hour,minute,send) return now
}

② 时间和时间戳直接的转换 第一个函数输入时间返回时间戳,第二个函数输入时间戳返回时间

func GetDateTimeStamp(datetime time.Time) int64{
now:=datetime.Unix()
fmt.Printf("TimeStamp: %v\n",now)
return now
} func GetDateTime(timeStamp int64){
now:=time.Unix(timeStamp,0)
fmt.Printf("DateTime: %v\n",now)
} 

③增加时间

func AddDay(src time.Time) time.Time{
//添加一天两小时
src = src.AddDate(,,).Add(time.Hour * )
return src
}

④测试一下

package main

import "DateTimeDemo"

func main(){

	dateTime:=DateTimeDemo.DateTimeBasic()
calcDateTime := DateTimeDemo.AddDay(dateTime)
timeStamp:=DateTimeDemo.GetDateTimeStamp(calcDateTime)
DateTimeDemo.GetDateTime(timeStamp) }

⑤输出

2019-02-26 16:51:59.7509972 +0800 CST m=+0.010553801
2019/02/26 16:51:59
TimeStamp: 1551264719
DateTime: 2019-02-27 18:51:59 +0800 CST

二、简单定时器

利用time中Tick()方法

func SimpleTicker(){
//间隔两秒,会像Channel中写入一个数据
ticker := time.Tick(time.Second * 2) for i := range ticker{
fmt.Printf("%v\n",i)
simpleTask()
}
} func simpleTask(){
fmt.Println("Task Start")
}
  

执行结果:

2019-02-26 16:54:43.7828451 +0800 CST m=+2.077803401
Task Start
2019-02-26 16:54:45.7831559 +0800 CST m=+4.078114201
Task Start
2019-02-26 16:54:47.7831744 +0800 CST m=+6.078132701
Task Start
2019-02-26 16:54:49.7833155 +0800 CST m=+8.078273801
Task Start
2019-02-26 16:54:51.782682 +0800 CST m=+10.077640301
Task Start

  

Go语言中DateTime知识点的更多相关文章

  1. C语言中,头文件和源文件的关系(转)

    简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句, ...

  2. C 语言中 setjmp 和 longjmp

    在 C 语言中,我们不能使用 goto 语句来跳转到另一个函数中的某个 label 处:但提供了两个函数——setjmp 和 longjmp来完成这种类型的分支跳转.后面我们会看到这两个函数在处理异常 ...

  3. c语言中的scanf在java中应该怎么表达,Scanner类。

    1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...

  4. C语言中do...while(0)的妙用(转载)

    转载来自:C语言中do...while(0)的妙用,感谢分享. 在linux内核代码中,经常看到do...while(0)的宏,do...while(0)有很多作用,下面举出几个: 1.避免goto语 ...

  5. C语言中,定义的含义?声明的含义?它们之间的区别是什么?

    在C语言中,对于定义和声明,也许我们非常的熟悉,但不一定真正的了解! 定义的含义:所谓定义,就是创建(编译器)一个对象,为这个对象分配一块内存空间并取名,也就是我们平常所说的变量名或对象名,一旦这个名 ...

  6. C++中函数的默认参数和C语言中volatile的学习

    1.函数默认参数 1 int func(int a,int b=10) 2 { 3 return a*b; 4 } 5 6 int main() 7 { 8 int c=func(2); 9 cout ...

  7. C语言中qsort函数用法

    C语言中qsort函数用法-示例分析    本文实例汇总介绍了C语言中qsort函数用法,包括针对各种数据类型参数的排序,非常具有实用价值非常具有实用价值. 分享给大家供大家参考.C语言中的qsort ...

  8. c语言中time相关函数

    工作中遇到的函数: int seed = time(NULL); srand(seed); signal(SIGINT, stop); signal(SIGUSR1, sig_usr1); 搜time ...

  9. C语言中的static 详细分析

    转自:http://blog.csdn.net/keyeagle/article/details/6708077/ google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大 ...

随机推荐

  1. Centos7+nginx+keepalived集群及双主架构案例

    目录简介 一.简介 二.部署nginx+keepalived 集群 三.部署nginx+keepalived双主架构 四.高可用之调用辅助脚本进行资源监控,并根据监控的结果状态实现动态调整 一.简介 ...

  2. hash一致性

    参照:https://www.cnblogs.com/moonandstar08/p/5405991.html 参照:http://www.cnblogs.com/haippy/archive/201 ...

  3. 中介者模式 调停者 Mediator 行为型 设计模式(二十一)

      中介者模式(Mediator)   调度.调停   意图 用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散 而且可以独立地改变它们之间的交互. ...

  4. 纯CSS编写汉克狗

    1,CSS中原生的变量定义语法是:--*,变量使用语法是:var(--*),其中*表示我们的变量名称:在CSS变量命名中,不能包含$,[,^,(,%等字符,普通字符局限在只要是“数字[0-9]”“字母 ...

  5. JQuery拖拽元素改变大小尺寸

    <!DOCTYPE html><html> <head> <title></title> <style type="text ...

  6. 第三次上机,ADO接口的使用

    <html> <head> <title>Reg</title> </head> <body><center> &l ...

  7. 章节十一、1-Junit介绍

    一.Junit是一个开源的测试框架,在selenium的jar包中,不需要单独安装和搭建环境 二.@BeforeClass:当在方法上加了这个注解的话,这个方法会在这个类的第一个test方法之前运行. ...

  8. XE5 搭建DataSnap服务

    1   准备工作 1.1 环境准备 XE5或XE7,操作系统Windows7(64位)操作系统. 数据库MSSQL选择SQLServer2008. 如果数据库服务没有在开发电脑上,则需要在开发电脑上安 ...

  9. C# ComboBox绑定值问题

    使用这种方式始终绑定值有问题: cbxSchool.DataSource = schoolList; cbxSchool.DisplayMember = "school_name" ...

  10. Python 进程(一)理论部分

    进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行,即正在运行的程序,是系统进行资源分配和调度的基本单位,进程是对正在运行程序的一个抽象,在早期面向进程设计的计算机结构中,进程是程 ...