go语言基础 --时间处理常用函数

获取当前时间

时间和日期相关的函数是开发中常用的,go语言中,引入time包即可使用相关的函数

  1. 获取当前时间的方法:time.Now(),返回一个time.Time类型的时间信息,可直接打印出来
go 复制代码
func main() {
    now := time.Now()
    fmt.Printf("%v, %T", now, now)
}

单独获取年月日时分秒

go 复制代码
package main
import(
    "fmt"
)
func main() {
    now := time.Now()
    fmt.Printf("%v, %T\n", now, now)
    fmt.Printf("%v, %T\n", now.Year(), now.Year())
    fmt.Printf("%v, %T\n", now.Year(), now.Year())
    fmt.Printf("%v, %T\n", now.Month(), now.Month())
    fmt.Printf("%v, %T\n", now.Day(), now.Day())
    fmt.Printf("%v, %T\n", now.Hour(), now.Hour())
    fmt.Printf("%v, %T\n", now.Minute(), now.Minute())
    fmt.Printf("%v, %T\n", now.Second(), now.Second())
}

输出如下

这里的月分是time.Month,如果想用int,可以用int(month)进行强转

日期格式化

go 复制代码
// 方法1,使用Printf/Sprintf
fmt.Printf("%02d-%02d-%02d %02d-%02d-%0d2", 
    now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
// 方法2,使用Format()函数
fmt.Printf(now.Format("2006/01/02 15:04:05"))
fmt.Printf(now.Format("2006-01-02"))
fmt.Printf(now.Format("15:04:05"))
// 这里的2006/01/02 15:04:05是指定格式,固定的字符串,不可变更,据说是go语言创建之初的时间
// 如果值想取月,只保留01,只想取日,保留02,以此类推

时间常量

go 复制代码
const(
    Nanosecond
    Microsecond
    Millisecond
    Second
    Minute
    Hour
)

常用在延时场景,如

go 复制代码
time.Sleep(100 * Nanosecond)

获取当前unix时间戳和nano时间戳

时间戳有时用于生成随机数或前后端时间传递,我们可以使用time的Unix和UnixNano方法,Unix方法返回自1970年1月1日00:00:00的总秒数,UnixNano返回总纳秒数

go 复制代码
// 注意这里参数t写在前面,表示这个是个只能在Time类型中使用的方法
func (t Time) Unix() int64
func (t Time) UnixNano() int64
相关推荐
悟能不能悟17 分钟前
java的java.sql.Date和java.util.Date的区别,应该怎么使用
java·开发语言
循环过三天24 分钟前
3.4、Python-集合
开发语言·笔记·python·学习·算法
_院长大人_2 小时前
设计模式-工厂模式
java·开发语言·设计模式
MATLAB代码顾问2 小时前
MATLAB实现决策树数值预测
开发语言·决策树·matlab
码事漫谈2 小时前
C++死锁深度解析:从成因到预防与避免
后端
码事漫谈3 小时前
智能体颠覆教育行业:现状、应用与未来展望调研报告
后端
蓝-萧3 小时前
【玩转全栈】----Django基本配置和介绍
java·后端
priority_key3 小时前
排序算法:堆排序、快速排序、归并排序
java·后端·算法·排序算法·归并排序·堆排序·快速排序
韩立学长3 小时前
基于Springboot的旧时月历史论坛4099k6s9(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
不染尘.3 小时前
2025_11_7_刷题
开发语言·c++·vscode·算法