千家信息网

如何使用now扩展go的时间工具箱

发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,这篇文章主要讲解了"如何使用now扩展go的时间工具箱",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何使用now扩展go的时间工具箱"吧!golan
千家信息网最后更新 2025年11月17日如何使用now扩展go的时间工具箱

这篇文章主要讲解了"如何使用now扩展go的时间工具箱",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何使用now扩展go的时间工具箱"吧!

golang不像C#Java这种高级语言,有丰富的语法糖供开发者很方便的调用。所以这便催生出很多的开源组件,通过使用这些第三方组件能够帮助我们在开发过程中少踩很多的坑。

时间处理是所有语言都要面对的一个问题,parse根据字符串转为date类型,tostring()将date类型转为定制化的字符串。

在实际使用过程中,parse的使用有一种不是很舒服的方法。

上源码

time1, _ := time.Parse("2006-01-02", "2020-02-22")fmt.Println(time1)time2, _ := time.Parse("2006/01/02", "2020/02/23")fmt.Println(time2)

不同的字符串格式要配置不同的模板才能正常解析,有没有一种方式类似C#中Datetime.parse("日期字符串"),一般输入的格式都能够被识别。

t, _ := now.Parse("2017/01/02")fmt.Println(t)t2, _ := now.Parse("2017-10-02 17:30")fmt.Println(t2)

很方便的,不用再去记 2006-01-02 15:04:05 这种奇怪的日期格式化了,真的想不明白。YYYY-MM-dd横行的如今,为什么作者要设计这么奇怪的日期格式化方式,百思不得奇解。

这只是now工具箱的一个功能,还有很多其他的附加功能等待大家探索。

基础使用

import "github.com/jinzhu/now"time.Now() // 2013-11-18 17:51:49.123456789 Monnow.BeginningOfMinute()        // 2013-11-18 17:51:00 Monnow.BeginningOfHour()          // 2013-11-18 17:00:00 Monnow.BeginningOfDay()           // 2013-11-18 00:00:00 Monnow.BeginningOfWeek()          // 2013-11-17 00:00:00 Sunnow.BeginningOfMonth()         // 2013-11-01 00:00:00 Frinow.BeginningOfQuarter()       // 2013-10-01 00:00:00 Tuenow.BeginningOfYear()          // 2013-01-01 00:00:00 Tue

设置每星期的起始天数

国外习惯使用星期天作为一周的第一天,而国内内使用星期一作为每周的第一天。now的设置很简单,一行代码即可

now.WeekStartDay = time.Monday // Set Monday as first day, default is Sundaynow.BeginningOfWeek()          // 2013-11-18 00:00:00 Mon

这种时候,本星期的每一天就变成18号了

"有没有更简单的方式呢,我不想每次都还要配置一下,可能有时候忘记了呀"

"当然有"

now.Monday()              // 2013-11-18 00:00:00 Monnow.Sunday()              // 2013-11-24 00:00:00 Sun (Next Sunday)now.EndOfSunday()         // 2013-11-24 23:59:59.999999999 Sun (End of next Sunday)

直接.Monday() .Sunday()便可。

EndOfSunday()则是获取到星期天当天最后一秒,在查询条件 起始日期

基于定义的配置计算时间

相当于是通过一个配置信息定义好一些基础的内容,例如输入输出格式,时区,星期的起始天参数。后续使用这种实例调用的所有方法都将基于此配置。

下面代码的解释是:

定义时间字符串输入/输出格式为"2006-01-02 15:04:05",将星期一作为每周的第一天,时区使用系统本地时区。

location, err := time.LoadLocation("Asia/Shanghai")myConfig := &now.Config{        WeekStartDay: time.Monday,        TimeLocation: location,        TimeFormats: []string{"2006-01-02 15:04:05"},}t := time.Date(2013, 11, 18, 17, 51, 49, 123456789, time.Now().Location()) // // 2013-11-18 17:51:49.123456789 MonmyConfig.With(t).BeginningOfWeek()         // 2013-11-18 00:00:00 MonmyConfig.Parse("2002-10-12 22:14:01")     // 2002-10-12 22:14:01myConfig.Parse("2002-10-12 22:14")        // returns error 'can't parse string as time: 2002-10-12 22:14'

感谢各位的阅读,以上就是"如何使用now扩展go的时间工具箱"的内容了,经过本文的学习后,相信大家对如何使用now扩展go的时间工具箱这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

时间 星期 格式 工具 工具箱 字符 字符串 日期 配置 内容 方式 时区 学习 起始 输入 不同 代码 功能 基础 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 海康网络安全白皮书免费下载 经典的软件开发模型有哪些 周口网络技术质量 县统计局网络安全自查报告 商务软件开发方向 8k纸网络安全手抄报复杂 企业应用软件开发学习 隆回软件开发公司推荐 新疆加强网络安全 邹永贵 数据库 关系数据库用什么存储及管理数据 根服务器由什么统一管理 服务器多少钱一年 湖南长峰汇聚网络技术中标 怎样搭建我的世界手机版服务器 语音软件开发图片 mysql数据库表大小 给网络技术公司起名 中学英语精品课程数据库 数据库异常请联系售后 中学网络安全法制宣传教育 一台电脑能同时安装两个数据库吗 有客户端关闭服务器就一直阻塞 奥丁神叛怎么提示服务器繁忙 上海嘉允网络技术有限公司 河南烽火互联网科技有限公司 怎样搭建我的世界手机版服务器 虚线软件开发 北京号外互联网科技有限公司 滨州工具软件开发公司
0