go语言中的时间time

时间

go 复制代码
package main
import ("fmt")
import ("time")
func main()  {
timeObj := time.Now()
fmt.Println(timeObj)
// 输出:2026-09-22 21:16:28.7889388 +0800 CST m=+0.000000001
} 

获取年月日时分秒

go 复制代码
package main
import ("fmt")
import ("time")
func main()  {
timeObj := time.Now()
fmt.Println(timeObj)
// 输出:2026-09-22 21:16:28.7889388 +0800 CST m=+0.000000001

//获取年月日时分秒
year := timeObj.Year()
// 月份需要转化一下
month := int(timeObj.Month()) 
day := timeObj.Day()
hour := timeObj.Hour()
minute := timeObj.Minute()
second := timeObj.Second()
// 2026 9 22 21 20 42
fmt.Println(year,month,day,hour,minute,second)
} 

Format进行格式化

时间类型有一个自带的方法 Format 进行格式化,

需要注意的是Go语言中格式化时间模板不是常见的 Y-m-d H:M:S形式,

而是使用Go的诞生时间2006年1月2号15点04分(记忆口诀为20061234)

注意一下go语言中的小时 03时 表示12小时制 15时 表示24小时制

获取此时此刻的时间(24h制)

go 复制代码
package main
import ("fmt")
import ("time")
func main()  {
timeObj := time.Now()
// 年月日 使用-进行分割
timeStr := timeObj.Format("2006-01-02 15:04:05")
// 输出:2026-09-22 21:30:14 这样可以获取此时此刻的时间
fmt.Println(timeStr)
} 
go 复制代码
package main
import ("fmt")
import ("time")
func main()  {
// 1. 先获取当前时间对象
timeObj := time.Now()
// 格式为 年月日使用/斜杠进行区分
timeStr2 := timeObj.Format("2006/01/02 15:04:05")
// 输出: 2026/09/22 21:39:04 年月日使用/斜杠进行区分
fmt.Println(timeStr2)
} 

获取指定时间(12h制)

go 复制代码
package main
import ("fmt")
import ("time")
func main()  {
// 1. 先获取当前时间对象
timeObj := time.Now()
// 格式为 年月日使用/斜杠进行区分
timeStr2 := timeObj.Format("2006/01/02 03:04:05")
// 2026/09/22 09:40:44
fmt.Println(timeStr2)
} 

时间戳

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

它也被称为 Unix 时间戳(UnixTimestamp)。

go 复制代码
package main
import ("fmt")
import ("time")
func main()  {
timeObj := time.Now()

// 这个是毫秒级级别的
unixTime := timeObj.Unix()
// 获取时间戳: 1790084682
fmt.Println(unixTime)

// 获取纳秒级别的时间戳 
unixNanoTime := timeObj.UnixNano()
fmt.Println(unixNanoTime)
// 输出的是: 1790085035764006000
} 

将时间戳转换为年月日 时分秒

go 复制代码
package main
import ("fmt")
import ("time")
func main()  {
 unixTime := 1790084682
 //  time.Unix的第一个参数是int 64位数的哈
 timeObj := time.Unix(int64(unixTime), 0)
 var stringTime = timeObj.Format("2006-01-02 15:04:05")
 fmt.Println(stringTime) 
}

每间隔1s输出时间

go 复制代码
package main
import ("fmt")
import ("time")
func main()  {
	// 表示每隔1s 执行一次,
	ticker := time.NewTicker(time.Second)

	for t := range ticker.C {
		// 每间隔1s就会输出时间
		fmt.Println("Tick at", t)
	}
}
相关推荐
小满zs12 小时前
Go语言第十八章(架构设计)
后端·go
山甫aa12 小时前
锁一篇搞定:乐观锁、悲观锁、CAS、数据库锁与分布式锁【从零开始的 Web 后端学习】
java·数据库·分布式·后端·学习·web
IT_陈寒13 小时前
Java开发实战:从入门到精通
前端·人工智能·后端
jktantan13 小时前
注解式脱敏:用 Jackson 的 ContextualSerializer 做字段级策略(一)
spring boot·后端·算法·spring cloud·系统架构
独泪了无痕1 天前
探索Pinyin4j-Java中的拼音转换利器
java·后端
码事漫谈1 天前
从 Coze 居然要下线了说起
后端
想不到一个好的ID1 天前
智能体开发
后端
皮皮林5511 天前
为什么数据库连接池不采用 IO 多路复用?
后端
IT_陈寒1 天前
Redis雪崩把我坑惨了,这是5年经验的教训
前端·人工智能·后端
量化分析码农1 天前
【Python量化多因子实战 06】从因子到持仓:多因子选股实盘工程化落地
后端