博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go语言碎片整理之 time
阅读量:6690 次
发布时间:2019-06-25

本文共 2010 字,大约阅读时间需要 6 分钟。

时间和日期是我们编程中经常用到的,本文主要介绍了Go语言内置的time包的基本用法。

Go语言中导入包

单行导入

import "time"import "fmt"

多行导入

import (    "fmt"        "time")

time包

time.Time类型表示时间。

func main(){    now := time.Now()    fmt.Printf("current time is :%v\n",now)    year := now.Year()    month := now.Month()    day := now.Day()    hour := now.Hour()    minute:= now.Minute()    second := now.Second()    fmt.Printf("%d-%02d-%02d %02d:%02d:%02d\n",year,month,day,hour,minute,second)}

时间戳

时间戳是自1970年1月1日(08:00:00GMT)至当前时间的总毫秒数。它也被为Unix时间戳。

func timestampDemo() {    now := time.Now()            //获取当前时间    timestamp1 := now.Unix()     //时间戳    timestamp2 := now.UnixNano() //纳秒时间戳    fmt.Printf("current timestamp1:%v\n", timestamp1)    fmt.Printf("current timestamp2:%v\n", timestamp2)}

使用time.Unix()函数将时间戳转为时间格式。

func timestampDemo2(timestamp int64) {    timeObj := time.Unix(timestamp, 0) //将时间戳转为时间格式    fmt.Println(timeObj)    year := timeObj.Year()     //年    month := timeObj.Month()   //月    day := timeObj.Day()       //日    hour := timeObj.Hour()     //小时    minute := timeObj.Minute() //分钟    second := timeObj.Second() //秒    fmt.Printf("%d-%02d-%02d %02d:%02d:%02d\n", year, month, day, hour, minute, second)}

定时器

使用time.Tick(时间间隔),来设置定时器。

func tickDemo(){    ticker := time.Tick(time.Second)    for i:=range ticker{        fmt.Println(i)    }}

时间间隔

Duration类型代表两个时间点之间经过的时间,以纳秒为单位。可表示的最长时间段大约为290年。定义时间间隔常量如下:

const (    Nanosecond Duration =1        Microsecond               =1000*Nanosecond        Millisecond                  =1000*Microsecond        Second                        =1000*Millisecond        Minute                         =60*Second        Hour                            =60*Minute)

例如:time.Duration 表示1纳秒,time.Second表示1秒。

时间加时间间隔

我们在日常的编码过程中可能会遇到要求时间+时间间隔的需求,Go语言的时间对象有提供Add方法如下:

func (t Time) Add(d Duration) Time

举个例子,求一个小时之后的时间:

func main(){    now := time.Now()    later := now.Add(time.Hour)    fmt.Println(later)}

两个时间相减

求两个时间之间的差值:

func (t Time) Sub(u time) Duration

转载于:https://blog.51cto.com/13766835/2401797

你可能感兴趣的文章
k8s使用deployment升级
查看>>
ionic3项目实战教程 - 第10讲 ionic3分类菜单设计(类似外卖)
查看>>
深度解析 | K8S API Server之入门须知
查看>>
LeanEngine 中使用 WebSocket
查看>>
浅入分析和Linux内核相关的文件夹/proc和/sys .
查看>>
Java 二分查找
查看>>
刚刚,阿里开源了一项重磅炸弹,终结程序员“中年危机”!
查看>>
《Spring Boot开发:从0到1》图片
查看>>
教你十分钟构建好 SpringBoot + SSM 框架
查看>>
吸烟场景运营商“烟客”获2000万元Pre-A轮融资,用于线下吸烟空间建设
查看>>
未来 Docker 的安全
查看>>
基于Android ActionBar的SearchView实时搜索结果
查看>>
spring boot +RabbitMQ +InfluxDB+Grafara监控实践
查看>>
马斯克的另一番“威胁论”:人类将成为人工智能的“宠物”
查看>>
Python 正则表达式(字符)详解
查看>>
Kali Linux 网络扫描秘籍 第三章 端口扫描(一)
查看>>
共享单车步入物联网军备战
查看>>
PHP 魔术变量
查看>>
推荐的PHP编码规范
查看>>
linux中awk学习小结
查看>>