golang 学习(二十一)time 时间,时间戳的用法以及定时器

本文详细介绍了Go语言中时间处理的方法,包括时间的创建、获取、格式化,时间戳的转换,以及如何使用定时器。通过实例展示了如何解析日期时间字符串,将时间戳转换为时间对象,和如何利用定时器进行周期性任务调度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

time 时间,时间戳的用法以及定时器

import (
	"fmt"
	"testing"
	"time"
)

时间的创建 和 获取

var timeObj = time.Now()
fmt.Println(timeObj) //2020-07-02 21:53:54.2141593 +0800 CST m=+0.006999401
year := timeObj.Year()
month := timeObj.Month()
day := timeObj.Day()
hour := timeObj.Hour()
min := timeObj.Minute()
sec := timeObj.Second()
fmt.Printf("%d-%02d-%02d %02d:%02d:%02d", year, month, day, hour, min, sec) //2020-07-02 21:53:54

时间的格式化 Format()

2006 代表年 01 代表月 02 代表日 03 代表12小时制/15代表24小时制 04 代表分 05 代表秒

timeObj.Format("2006-01-02 03:04:05")
//12小时制
fmt.Println(timeObj.Format("2006-01-02 03:04:05")) //2020-07-02 09:58:20
//24小时制
fmt.Println(timeObj.Format("2006-01-02 15:04:05")) //2020-07-02 21:58:20

获取当前时间戳

unixtime := timeObj.Unix()
fmt.Println(unixtime) //1593698571(秒)

获取纳秒时间戳

unixNatime := timeObj.UnixNano()
fmt.Println(unixNatime)                     //1593698665603918300

时间戳转时间对象

var timeObj = time.Now()
unixtime := timeObj.Unix()
timeObject := time.Unix(int64(unixtime), 0) //时间戳转时间对象
var strTime = timeObject.Format("2006/01/01 15:04:05")
fmt.Println(strTime) //2020/07/07 22:16:25

日期时间字符串转时间戳

var str = "2020-11-22 11:18:56"
var tmp = "2006-01-02 15:04:05"
//str和tmp的格式要保持一致
timeObj, _ = time.ParseInLocation(tmp, str, time.Local)
unixtime = timeObj.Unix()
fmt.Println(unixtime) //1606015136

时间的常量

在这里插入图片描述

时间操作方法 Add 增加时间

timeObj = time.Now()
timeObj = timeObj.Add(time.Second) //增加1秒

定时器

time.NewTicker()

ticker := time.NewTicker(time.Second) //每隔1分钟 执行一次程序
var n = 0
for t := range ticker.C {
	if n > 5 {
		ticker.Stop()//终止定时器继续执行
		break
	}
	fmt.Println(t)
	n++
}

休眠方法 time.sleep()

time.Sleep(time.Second) //可以实现定时器功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值