全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Golang如何使用 time 处理时间与日期_Golang time 包时间操作与格式化

Go语言通过time包提供时间处理功能,使用time.Now()获取当前时间;格式化与解析基于“2006-01-02 15:04:05”模板;支持Add、Sub等时间计算;通过LoadLocation处理时区;time.Sleep实现休眠,time.After用于超时控制。

Go语言通过内置的time包提供了强大的时间处理能力,涵盖时间获取、格式化、解析、计算和时区操作。掌握time包是开发中处理日期与时间的基础。

获取当前时间

使用time.Now()可以获取当前本地时间,返回一个time.Time类型的值。

示例:

package main

import ( "fmt" "time" )

func main() { now := time.Now() fmt.Println("当前时间:", now) }

时间格式化与解析

Go 的时间格式化不使用yyyy-MM-dd HH:mm:ss这类占位符,而是采用固定的参考时间:
Mon Jan 2 15:04:05 MST 2006(对应 Unix 时间戳 1136239445)

只要格式字符串与此一致,就能正确格式化或解析时间。

格式化示例:

t := time.Now()
formatted := t.Format("2006-01-02 15:04:05")
fmt.Println("格式化时间:", formatted)

解析字符串时间:

str := "2025-08-20 10:30:00"
t, err := time.Parse("2006-01-02 15:04:05", str)
if err != nil {
    fmt.Println("解析失败:", err)
} else {
    fmt.Println("解析后时间:", t)
}

常用格式符号对照:

  • 2006 → 年份
  • 01 → 月份(两位)
  • JanJanuary → 月份名称
  • 02 → 日期(两位)
  • 15 → 小时(24小时制)
  • 04 → 分钟
  • 05 → 秒
  • MonMonday → 星期
  • MST → 时区

时间计算与比较

time包支持加减时间、计算时间差、判断先后等操作。

常见操作:

  • 添加时间t.Add(time.Hour * 2) → 加2小时
  • 减去时间t.Add(-time.Minute * 30) → 减30分钟
  • 计算时间差duration := t2.Sub(t1) → 返回time.Duration
  • 判断时间先后t1.Before(t2)t1.After(t2)
  • 是否相等t1.Equal(t2)

示例:

now := time.Now()
twoHoursLater := now.Add(2 * time.Hour)
duration := twoHoursLater.Sub(now)
fmt.Println("两小时后:", twoHoursLater)
fmt.Println("间隔:", duration) // 输出 2h0m0s

时区处理

默认time.Now()返回本地时区时间。可通过time.LoadLocation加载指定时区。

示例:获取东京时间

loc, err := time.LoadLocation("Asia/Tokyo")
if err != nil {
    fmt.Println("时区加载失败:", err)
    return
}
t := time.Now().In(loc)
fmt.Println("东京时间:", t)

常见时区名包括:UTCLocal(本地)、Asia/ShanghaiAmerica/New_York 等。

若需固定 UTC 时间:

time.Now().UTC()

定时与休眠

time.Sleep用于阻塞当前 goroutine 指定时间。

time.After返回一个通道,在指定时间后发送当前时间。

示例:

// 休眠2秒
time.Sleep(2 * time.Second)

// 使用 After 实现超时控制 select { case <-time.After(3 * time.Second): fmt.Println("超时") }

基本上就这些。Go 的时间处理设计简洁但强大,关键是记住那个“魔法时间”格式模板。只要格式写对,解析和输出都很可靠。实际开发中建议封装常用格式,避免重复出错。


# go  # golang  # go语言  # ai  # unix  # yy  # 封装  # 字符串 


相关文章: 合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  如何配置WinSCP新建站点的密钥验证步骤?  如何在橙子建站上传落地页?操作指南详解  如何用IIS7快速搭建并优化网站站点?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  如何在Windows服务器上快速搭建网站?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  如何快速使用云服务器搭建个人网站?  教学论文网站制作软件有哪些,写论文用什么软件 ?  简单实现Android文件上传  岳西云建站教程与模板下载_一站式快速建站系统操作指南  家庭服务器如何搭建个人网站?  内部网站制作流程,如何建立公司内部网站?  制作网页的网站有哪些,电脑上怎么做网页?  如何快速查询网站的真实建站时间?  网站制作模板下载什么软件,ppt模板免费下载网站?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  如何使用Golang安装API文档生成工具_快速生成接口文档  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  建站三合一如何选?哪家性价比更高?  如何在建站之星绑定自定义域名?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  购物网站制作公司有哪些,哪个购物网站比较好?  5种Android数据存储方式汇总  如何用免费手机建站系统零基础打造专业网站?  行程制作网站有哪些,第三方机票电子行程单怎么开?  建站之星展会模版如何一键下载生成?  如何通过宝塔面板实现本地网站访问?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  网站制作网站,深圳做网站哪家比较好?  如何访问已购建站主机并解决登录问题?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  如何用好域名打造高点击率的自主建站?  建站VPS选购需注意哪些关键参数?  如何选择适合PHP云建站的开源框架?  香港服务器选型指南:免备案配置与高效建站方案解析  制作公司内部网站有哪些,内网如何建网站?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  Python lxml的etree和ElementTree有什么区别  如何通过.red域名打造高辨识度品牌网站?  建站之星收费标准详解:套餐费用及年费价格表一览  焦点电影公司作品,电影焦点结局是什么?  学校建站服务器如何选型才能满足性能需求? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。