新闻详情

新闻详情

首页 / 资讯中心 / 详情

Go time 包实战:Ticker、Timer、Date 加减与格式化

发布时间:2026/9/28 4:29:15来源:尧图网络
Go time 包实战:Ticker、Timer、Date 加减与格式化
Go time 包实战Ticker、Timer、Date 加减与格式化时间处理业务项目天天见time 包 Go 标准库写得不错但坑点也不少。一、时间类型typeTimestruct{walluint64;extint64;loc*Location}time.Time是值类型但内含指针赋值拷贝会共享 Location。二、Time.Now / Formatnow:time.Now()fmt.Println(now.Format(time.RFC3339))格式化用的不是 strftime是 reference time2006-01-02T15:04:05Z07:00记住Mon Jan 2 15:04:05 MST 2006这个魔数。三、Tickerticker:time.NewTicker(1*time.Second)deferticker.Stop()fort:rangeticker.C{fmt.Println(t)}不能向 channel 写入 nil。四、Timertimer:time.NewTimer(2*time.Second)defertimer.Stop()select{case-timer.C:case-ctx.Done():timer.Stop()}五、Date 加减now:time.Now()tomorrow:now.Add(24*time.Hour)weekAgo:now.Add(-7*24*time.Hour)六、Durationd:5*time.Second100*time.Millisecondtime.Duration int64 纳秒。七、Parset,_:time.Parse(time.RFC3339,2026-07-30T10:00:00Z)八、Locale / Locationimporttime/tzdataloc,_:time.LoadLocation(Asia/Shanghai)fmt.Println(time.Now().In(loc))time/tzdata嵌入 tzdata避免运行时找不到。九、Tick 节流importgithub.com/modern-go/limiterlimiter:limiter.NewTimeLimiter(1*time.Second)limiter.Call(func(){work()})十、时间在日志中的格式化slog.NewJSONHandler(os.Stdout,slog.HandlerOptions{ReplaceAttr:func(groups[]string,a slog.Attr)slog.Attr{ifa.Keyslog.TimeKey{returnslog.String(ts,a.Value.Time().Format(time.RFC3339))}returna},})十一、踩坑清单Time 比较用t1.Before(t2)别用不要把time.Time持久化进 JSON 默认 marshal 而是 string否则序列化浪费注意 ParseInLocation vs Parse十二、性能对比time.Time 比较是常数级。 format / parse 是 O(string len)。十三、企业实战相对时间funcRelative(t time.Time)string{d:time.Since(t)ifdtime.Minute{returnjust now}ifdtime.Hour{returnfmt.Sprintf(%dm ago,int(d.Minutes()))}ifd24*time.Hour{returnfmt.Sprintf(%dh ago,int(d.Hours()))}returnfmt.Sprintf(%dd ago,int(d.Hours()/24))}十四、数据库时间createdAt:time.Now()db.Exec(INSERT INTO ... (created_at) VALUES (?),createdAt)// 扫描回 Gorow.Scan(createdAt)DB 与 Go 都需在 UTC 存储避免时区错乱。十五、未来Go 1.24 计划加入 typed duration literal5s后端类型推断。十六、总结与展望time 包虽复杂但稳定。掌握 Format magic、Timer、Ticker、Location 让项目稳健。未来时序数据库的趋势可能弱化业务层的时间处理。十七、参考文献Go 标准库 timeLayout pattern doc
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Cartographer 2D建图实战:激光雷达与IMU融合标定与避坑指南 2026/9/28 5:34:57

Cartographer 2D建图实战:激光雷达与IMU融合标定与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
MATLAB随机森林回归实战:从原理到代码包拆解与避坑指南 2026/9/28 5:34:57

MATLAB随机森林回归实战:从原理到代码包拆解与避坑指南

简介:面向需要对高维数据或非线性关系进行回归建模的MATLAB用户,这份资源提供随机森林回归的完整可运行代码。随机森林作为集成学习方法,通过自助采样与特征随机性构建多棵决策树,能有效降低过拟合风险,并在预测的同时…

阅读更多 →
STM32串口下载全链路解析:从BOOT0握手到一键下载电路 2026/9/28 5:34:57

STM32串口下载全链路解析:从BOOT0握手到一键下载电路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
DMA原理与实战:CPU减负的核心I/O控制机制 2026/9/28 5:34:50

DMA原理与实战:CPU减负的核心I/O控制机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
不会代码?租车网站模板下载源码实战与报价全解析 2026/9/28 5:34:50

不会代码?租车网站模板下载源码实战与报价全解析

不会代码?租车网站模板下载源码实战与报价全解析 自己不会代码,却想急着把租车业务搬上网,这是很多中小租车公司老板最头疼的局。很多人第一反应是去搜“租车网站模板下载”,想找个现成的壳子改改就能用。但坑就在这:网上大部分所谓的“免费源码下载”,…

阅读更多 →
基于JFM7VX690T80的8通道光纤数据采集与FMC传输平台设计 2026/9/28 5:34:49

基于JFM7VX690T80的8通道光纤数据采集与FMC传输平台设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉