go学习笔记
基础
go 定义变量的几种方式
常量的声明
go基本数据类型
go语言中的流程控制
golang中的数组
切片
golang中的map 详解
golang 函数详解
内置函数 panic/recover
golang time包 以及日志函数
golang中的指针
golang 中的结构体
Golang 结构体 和 json互相转换 序列化 反序列化
Golang 中的 go mod 以及 Golang包 详解
golang 中的接口
golang goroutine channel 实现并发 和 并行
channel
goroutine 互斥锁 读写互斥锁
golang 反射
golang 标准库
io
strconv
工具 + blog
进程 线程 协程
空接口 类型断言
为Go项目编写Makefile
减小 Go 代码编译后的二进制体积
go windows下编译linux可执行文件
本文档使用 MrDoc 发布
-
+
首页
golang time包 以及日志函数
## time 包 ## time.Now() 获取当前时间 ``` func main() { t := time.Now() fmt.Printf("t: %v\n", t) fmt.Printf("t: %T \n", t) /* t: 2022-08-04 17:30:26.2645463 +0700 +07 m=+0.001043701 t: time.Time */ t.Year() //年 t.Month() //月 t.Day() //日 t.Hour() //小时 t.Minute() //分 t.Second() //秒 t.Zone() //时区 } ``` ## now.Format 格式化输出日期字符串 时间类型有一个自带的方法Format进行格式化, 需要注意的是Go语言中格式化时间模板不是常见的Y-m-d H:M:S 而是使用Go的诞生时间2006年1月2日15点04分(记忆口诀为 2006 1 2 3 4) ``` func main() { /* 2006 年 01 月 02 日 03 小时 03表示12小时制 15表示 24小时制 04 分钟 05 秒 */ s := time.Now().Format("2006-01-02 03:04:05") fmt.Printf("s: %v\n", s) //s: 2022-08-04 05:49:35 } ``` ## 获取当前时间戳 时间戳是自 1970年1月1日 至当前时间的总毫秒数。它也被称为Unix时间戳 基于时间对象获取时间戳的示例代码如下: ``` func main() { i := time.Now().Unix() fmt.Printf("当前时间戳: %v\n", i) //毫秒 } ``` ## 时间戳 转换成时间 ``` func main() { timeOjbect := time.Unix(1659610954, 0) //time.unix(毫秒时间戳,纳秒时间戳) s := timeOjbect.Format("2006 - 01 -02 03:04:05") fmt.Printf("s: %v\n", s) //s: 2022 - 08 -04 06:02:34 } ``` ## 把时间字符串 转换成 时间戳 ``` func main() { tmp := "2006-01-02 15:04:05" timeOjbect := time.Unix(1659610954, 0) //time.unix(毫秒时间戳,纳秒时间戳) s := timeOjbect.Format("2006-01-02 03:04:05") t, _ := time.ParseInLocation(tmp, s, time.Local) //time.ParseInLocation(格式化的时间模板, 时间, time.Local) i := t.Unix() //将time 对象转换成 时间戳 fmt.Printf("i: %v\n", i) //i: 1659567754 } ``` ## 操作时间个函数 ### add ``` func main() { t := time.Now() t2 := t.Add(time.Hour) // 当前时间增加1小时 fmt.Printf("t2: %v\n", t2) } ``` ### sub ## golang 里面的定时器
admin
2022年8月5日 12:32
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码