Golang - time包的使用


基本用法

package main

import (
	"fmt"
	"time"
)

func main() {
	now := time.Now() // 返回是一个结构体
	fmt.Printf("%#v\n", now) // time.Time{wall:0xbf37fcc65da58dc8, ext:248909, loc:(*time.Location)(0x1174d00)}

	// 结构体可以使用以下方法
	fmt.Println(now.Year())       // 年 2019
	fmt.Println(now.Month())      // 月 June
	fmt.Println(now.Day())        // 日 12
	fmt.Println(now.Hour())       // 时 11
	fmt.Println(now.Minute())     // 分 42
	fmt.Println(now.Second())     // 秒 21
	fmt.Println(now.Nanosecond()) // 纳秒 706973000
		
	fmt.Println(now.Date()) // 日期 2019 June 12
	
	fmt.Println(now.Sleep(time.Second)) // 使程序睡眠

    // 手动指定时区时间
	cstZone := time.FixedZone("CST", 8*3600)       // 东八
	fmt.Println(time.Now().In(cstZone))
	
	zone, _ := time.LoadLocation("Asia/Shanghai")
	fmt.Println(time.Now().In(zone))
}


定时器

package main

import (
	"fmt"
	"time"
)

// 定时器函数
func ticker() {
	ticker := time.Tick(time.Second) // 定义一个一秒间隔的定时器
	
	for i := range ticker {
		fmt.Println(i)
	}
}

func main() {
	ticker()
}


时间戳

package main

import (
	"fmt"
	"time"
)

func main() {
	// 根据当前时间得到时间戳
	timeStamp := time.Now().Unix()         // 秒级时间戳
	nanoTimeStamp := time.Now().UnixNano() // 纳秒级时间戳
	fmt.Println(timeStamp, nanoTimeStamp)

	// 根据时间戳获取时间
	timeObj := time.Unix(1000000000, 0) // 这个结构体和 time.Now() 得到的结构体一样
	fmt.Println(timeObj.Date())
}


格式化时间

package main

import (
	"fmt"
	"time"
)

func main() {
	now := time.Now()
	
	// go语言的诞生日期 2006 12345
	// 2006(表示年)-(连接符)01(表示月)-02(表示天) 15(表示时):(连接符)04(分):05(秒):000(毫秒) 
	
	ret := now.Format("2006/1/2 15:04:05")
	fmt.Println(ret)
}


练习

package main

import (
	"fmt"
	"time"
)

func p() int {
	start := time.Now().Second()
	time.Sleep(time.Second * 5)
	fmt.Println("func P")
	end := time.Now().Second()
	return end - start
}

func main() {
	fmt.Printf("p 函数共耗时: %v 秒\n", p())
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值