Golang 常用的时间转换

1、获取 Y-m-d H:i:s 格式的当前时间

Go 复制代码
t := time.Now().Format(time.DateTime)

2、获取当前时间戳

Go 复制代码
currentTime := time.Now()
timestamp := currentTime.Unix() // 获取秒级时间戳

3、Y-m-d H:i:s 格式转时间戳

Go 复制代码
timeStr := "2023-09-01 12:00:00"
t, err := time.Parse(time.DateTime, timeStr)
if err != nil {
    fmt.Println("解析时间错误:", err)
     return
}
timestamp := t.Unix()

4、时间戳转Y-m-d H:i:s 格式

Go 复制代码
timestamp := int64(1698921600)
t := time.Unix(timestamp, 0)
formattedTime := t.Format(time.DateTime)

5、time.Now()获取时间的具体值

Go 复制代码
t := time.Now()
fmt.Println("time.Now():", t) // 2020-10-24 22:10:53.328973 +0800 CST m=+0.006015101
year, month, day := t.Date()
fmt.Println("日期:", year, month, day) // 2020 October 24
fmt.Println("一年中的第几天:", t.YearDay()) // 298
fmt.Println("星期几:", t.Weekday()) // Saturday
fmt.Println("年:", t.Year()) // 2020
fmt.Println("月:", t.Month()) // October
fmt.Println("日:", t.Day()) // 24
fmt.Println("时:", t.Hour()) // 22
fmt.Println("分:", t.Minute()) // 10
fmt.Println("秒:", t.Second()) // 53
fmt.Println("纳秒:", t.Nanosecond()) // 328973000
fmt.Println("秒时间戳:", t.Unix()) // 1603548653
fmt.Println("纳秒时间戳:", t.UnixNano()) // 1603548653328973000
fmt.Println("毫秒时间戳:", t.UnixNano() / 1e6) // 1603548653328

6、时间加减法

Go 复制代码
t := time.Now()

addTwoHour := t.Add(2 * time.Hour)
fmt.Println("增加2小时:", addTwoHour)

subTwoHour := t.Add(-2 * time.Hour)
fmt.Println("减去2小时:", subTwoHour)

Go 1.20之后增加的三个常量

DateTime = "2006-01-02 15:04:05"

DateOnly = "2006-01-02"

TimeOnly = "15:04:05"

否则,就要写死这种格式:

time.Now().Format("2006-01-02 15:04:05")

注意,这个时间2006-01-02 15:04:05完全不能改,是一个固定的时间(我不理解)

相关推荐
C语言小火车16 小时前
C++ 堆排序深度精讲:基于完全二叉树的选择排序进化,最坏情况 O(n log n) 的稳定王者
开发语言·c++·算法·排序算法·堆排序
北冥you鱼16 小时前
abigen 最佳实践:从入门到精通,高效生成 Go 语言合约绑定
开发语言·golang·区块链
ALex_zry17 小时前
C++26 std::complex 结构化绑定详解:auto [re, im] = c
c语言·开发语言·c++
shushangyun_18 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
她说..18 小时前
Java 默认值设置方式
java·开发语言·后端·springboot
忧郁的紫菜18 小时前
基础实现:单篇 Markdown 转 Word
开发语言·c#·word
甜美的小天鹅18 小时前
Swifter C#之inline还是不inline,这是个问题
开发语言·c#
学渣超18 小时前
记一次分布式事务数据不一致的排查之旅:从超时到索引,层层剥茧
java·后端·架构
小短腿的代码世界18 小时前
Qt Bluetooth源码深度解析:从HCI协议到跨平台API的完整架构
开发语言·qt·架构
掉鱼的猫18 小时前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·llm·aigc