zoukankan      html  css  js  c++  java
  • Go time 包

    package main
    
    import (
    	"fmt"
    	"time"
    )
    
    func main(){
    	//time.Time代表一个纳秒精度的时间点
    	var t time.Time
    
    	//返回当前时间
    	t = time.Now()
    	fmt.Printf("%v
    ", t)
    
    	//返回所在时区:Local
    	fmt.Printf("%v
    ", t.Location())
    
    	//返回UTC时间和UTC时区
    	fmt.Printf("%v %v
    ", t.UTC(), t.UTC().Location())
    
    	//同上,In()返回指定时区的时间
    	fmt.Printf("%v %v
    ", t.In(time.UTC), t.In(time.UTC).Location())
    
    	//返回当地时区的时间
    	fmt.Printf("%v %v
    ", t.Local(), t.Local().Location())
    
    	//根据时间戳返回本地时间,参数分别表示秒数和纳秒数
    	// fmt.Println(time.Now().Unix())
    	t2 := time.Unix(1593514197, 0)
    	fmt.Println(t2)
    
        //根据指定时间返回time.Time,分别指定年,月,日,时,分,秒,纳秒,时区
    	t3 := time.Date(2019, time.Month(5), 26, 15, 30, 20, 0, t.Location())
    	fmt.Println(t3)
    
    	//获取时间信息
    	t4 := time.Now()
    	//返回日期
    	fmt.Println(t4.Date())
    	//返回年
    	fmt.Println(t4.Year())
    	//返回月
    	fmt.Println(t4.Month())
    	//返回日
    	fmt.Println(t4.Day())
    	//返回星期
    	fmt.Println(t4.Weekday())
    	//返回ISO 9601标准下的年份和星期编号
    	fmt.Println(t4.ISOWeek())
    	//返回时分秒
    	fmt.Println(t4.Clock())
    	//返回小时
    	fmt.Println(t4.Hour())
    	//返回分钟
    	fmt.Println(t4.Minute())
    	//返回秒
    	fmt.Println(t4.Second())
    	//返回纳秒
    	fmt.Println(t4.Nanosecond())
    	//返回一年中对应的天
    	fmt.Println(t4.YearDay())
    	//返回时区的规范名,时区相对于UTC的时间偏移量(秒)
    	fmt.Println(t4.Zone())
    	//返回时间戳
    	fmt.Println(t4.Unix())
    	//返回纳秒时间戳
    	fmt.Println(t4.UnixNano())
    
    	//格式化输出时间:2017-10-23 19:16:25
    	t5 := time.Now()
    	fmt.Println(t5)
    	fmt.Println(t5.Format("2006-01-02 15:04:05"))
    
    	//时间的比较与计算
    	t6 := time.Now()
    	//是否零时时间:false
    	fmt.Println(t6.IsZero())
    	//t6时间在t5时间之后,返回真:true
    	fmt.Println(t6.After(t5))
    	//t5时间在t6时间之前,返回真:true
    	fmt.Println(t5.Before(t6))
    	//时间是否相同:false
    	fmt.Println(t6.Equal(t5))
    	//返回t6加上纳秒的时间:
    	fmt.Println(t6.Add(100000))
    	//返回两个时间之差的纳秒数:6.382µs
    	fmt.Println(t6.Sub(t5))
    	//返回t6加1年,1月,1天的时间
    	fmt.Println(t6.AddDate(1, 1, 1))
    
    
    	//时间的序列化
    	t7 := time.Now()
    
    	//序列化二进制
    	bin, _ := t7.MarshalBinary()
    
    	//反序列化二进制:2017-10-23 19R:16:25.383923 +0800 CST
    	t7.UnmarshalBinary(bin)
    	fmt.Println(t7)
    
    	//序列化json:"2017-10-23T19:16:25.383923+08:00"
    	json, _ := t7.MarshalJSON()
    	fmt.Println(string(json))
    
    	//反序列化json:2017-10-23 19:16:25.383923 +0800 CST
    	t7.UnmarshalJSON(json)
    	fmt.Println(t7)
    
    	//序列化文本:2017-10-23T19:16:25.383923+08:00
    	txt, _ := t7.MarshalText()
    	fmt.Println(string(txt))
    
    	//反序列化文本:2017-10-23 19:16:25.383923 +0800 CST
    	t7.UnmarshalText(txt)
    	fmt.Println(t7)
    
    	//gob编码:2017-10-23 19:16:25.383923 +0800 CST
    	gob, _ := t7.GobEncode()
    	t7.GobDecode(gob)
    	fmt.Println(t7)
    
    	//时间段time.Duration
    	dur := time.Duration(6666666600000)
    
    	//返回字符串表示:1h51m6.6666s
    	fmt.Println(dur.String())
    
    	//返回小时表示:1.8518518333333334
    	fmt.Println(dur.Hours())
    
    	//返回分钟表示:111.11111
    	fmt.Println(dur.Minutes())
    
    	//返回秒表示:6666.6666
    	fmt.Println(dur.Seconds())
    
    	//返回纳秒表示:6666666600000
    	fmt.Println(dur.Nanoseconds())
    
    	//时区time.Location,返回时区名:local
    	fmt.Println(time.Local.String())
    
    	//通过地点名和时间偏移量返回时区:Shanghai
    	fmt.Println(time.FixedZone("Shanghai", 800))
    
    	//通过给定时区名称,返回时区:Asia/Shanghai
    	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 {
    	         ticker.Stop()
    		   break
    	    }
    	       select {
    	      case <-ticker.C:
    		 num++
    		  fmt.Println("1 second...")
    		}
    	}
    }
    

      

  • 相关阅读:
    利用Spring AOP自定义注解解决日志和签名校验
    SpringBoot返回date日期格式化,解决返回为TIMESTAMP时间戳格式或8小时时间差
    @RequestBody配合@JsonFormat注解实现字符串自动转换成Date
    Mysql的时间类型问题
    IntelliJ IDEA使用maven-javadoc-plugin生成Java Doc控制台乱码
    Maven学习笔记(十二)-maven打包之resource配置
    SpringBoot使用@Value从yml文件取值为空--注入静态变量
    cloud server ribbon 自定义策略配置
    JNA 如何 加载多个 存在依赖的 DLL 库
    Remote Desktop File Format
  • 原文地址:https://www.cnblogs.com/honglingjin/p/13215471.html
Copyright © 2011-2022 走看看