当前位置: 首页 > news >正文

golang 时间工具类

用不习惯也嫌麻烦每次都去操作时间,然后就自己写了个时间工具类

package timeutilimport ("time"
)func New() *TimeUtil {return &TimeUtil{}
}// TimeUtil 是时间操作工具类
type TimeUtil struct{}// GetFormattedDate 获取格式化的日期字符串
func (tu *TimeUtil) GetFormattedDate(t time.Time) string {return t.Format("2006-01-02")
}// GetFormattedTime 获取格式化的时间字符串
func (tu *TimeUtil) GetFormattedTime(t time.Time) string {return t.Format("15:04:05")
}// GetFormattedDateTime 获取格式化的日期时间字符串
func (tu *TimeUtil) GetFormattedDateTime(t time.Time) string {return t.Format("2006-01-02 15:04:05")
}// GetWeekday 获取星期几
func (tu *TimeUtil) GetWeekday(t time.Time) string {return t.Weekday().String()
}// IsLeapYear 判断是否为闰年
func (tu *TimeUtil) IsLeapYear(year int) bool {return year%4 == 0 && (year%100 != 0 || year%400 == 0)
}// ParseDateFromString 将日期字符串解析为时间对象
func (tu *TimeUtil) ParseDateFromString(dateString string) (time.Time, error) {layout := "2006-01-02"t, err := time.Parse(layout, dateString)if err != nil {return time.Time{}, err}return t, nil
}// ParseTimeFromString 将时间字符串解析为时间对象
func (tu *TimeUtil) ParseTimeFromString(timeString string) (time.Time, error) {layout := "15:04:05"t, err := time.Parse(layout, timeString)if err != nil {return time.Time{}, err}return t, nil
}// ParseDateTimeFromString 将日期时间字符串解析为时间对象
func (tu *TimeUtil) ParseDateTimeFromString(dateTimeString string) (time.Time, error) {layout := "2006-01-02 15:04:05"t, err := time.Parse(layout, dateTimeString)if err != nil {return time.Time{}, err}return t, nil
}// FormatTimeString 将时间字符串转换为指定格式的日期时间字符串
/**
inputTime 表示输入的时间字符串 字符格式为:2006-01-02 15:04:05
format 表示要转换的日期时间格式 1、YYYY-MM-DD hh:mm:ss  2、YYYY-MM-DD  3、hh:mm:ss
*/
func (tu *TimeUtil) FormatTimeString(inputTime, format string) (string, error) {format = rule(format)layout := "2006-01-02 15:04:05"t, err := time.Parse(layout, inputTime)if err != nil {return "", err}formattedTime := t.Format(format)return formattedTime, nil
}// FormatTimeStringZ 将时间字符串转换为指定格式的日期时间字符串
/**
inputTime 表示输入的时间字符串 字符格式为:2023-07-29T15:30:00Z
format 表示要转换的日期时间格式 1、YYYY-MM-DD hh:mm:ss  2、YYYY-MM-DD  3、hh:mm:ss
*/
func (tu *TimeUtil) FormatTimeStringZ(inputTime, format string) (string, error) {format = rule(format)t, err := time.Parse(time.RFC3339, inputTime)if err != nil {return "", err}formattedTime := t.Format(format)return formattedTime, nil
}// rule 时间规则
func rule(format string) (str string) {if format == "1" {format = "2006-01-02 15:04:05"} else if format == "2" {format = "2006-01-02"} else if format == "3" {format = "15:04:05"}return format
}
http://www.lryc.cn/news/100167.html

相关文章:

  • 剑指 Offer 44.!! 数字序列中某一位的数字
  • 16K个大语言模型的进化树;81个在线可玩的AI游戏;AI提示工程的终极指南;音频Transformers课程 | ShowMeAI日报
  • Docker Compose 容器编排 + Docker--harbor私有仓库部署与管理
  • 九五从零开始的运维之路(其二十六)
  • 29.Git版本控制工具
  • 【算法题】2790. 长度递增组的最大数目
  • Qt设置开机自启动无法读取配置文件
  • 解决Font family [‘sans-serif’] not found问题
  • C语言进阶-2
  • Zabbix监控之分布式部署
  • vue2企业级项目(七)
  • PDPS教程:导出带颜色的JT格式2D布局图文件的另一种方法
  • AI面试官:Asp.Net 中使用Log4Net (二)
  • C# Solidworks二次开发:向量相关的数学函数API的使用介绍
  • table 导出表格 Excel
  • 基于 Flink SQL CDC 数据处理的终极武器
  • uniapp使用HQChart的k线,用webSocket更新数据
  • idea的Plugins中搜索不到插件
  • flask 实现简单的登录系统demo
  • Spring Security安全配置
  • 2023Java后端开发之100道常见经典面试题
  • Redis详解,包括安装命令,应用场景,优缺点,案列分析,各个开发语言如何应用
  • AI数字人:金融数字化转型的“关键先生”
  • mac关闭VPN之后,浏览器就不能够正常上网了(图解)
  • YOLOv5改进系列(17)——更换IoU之MPDIoU(ELSEVIER 2023|超越WIoU、EIoU等|实测涨点)
  • 基于WSL2、Ubuntu和VS Code的CUDA平台运行C语言程序
  • 构建外卖系统小程序,订单管理功能实现步骤详解
  • 用asp.net开发h5网页版视频播放网站,类似优酷,jellyfin,emby
  • Redis—相关背景
  • SSL 证书过期巡检脚本