1 Star 0 Fork 0

Burning/gopackage

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
gtimeUtils.go 2.99 KB
一键复制 编辑 原始数据 按行查看 历史
Burning 提交于 2024-11-16 09:11 . 优化更新
package gtime
import (
"fmt"
"time"
)
// 常量:时间格式
const (
STANDARD_FORMAT = "2006-01-02 15:04:05"
DATE_FORMAT = "2006-01-02"
MONTH_FORMAT = "2006-01"
FLAT_DATE = "20060102"
FLAT_FORMAT = "20060102150405"
)
// GetCurrentTime 获取当前时间的标准格式字符串
func GetCurrentTime() string {
return time.Now().Format(STANDARD_FORMAT)
}
// GetCurrentTimestamp 获取当前时间戳(秒级)
func GetCurrentTimestamp() int64 {
return time.Now().Unix()
}
// GetCurrentMilliTimestamp 获取当前时间戳(毫秒级)
func GetCurrentMilliTimestamp() int64 {
return time.Now().UnixMilli()
}
// StandardFormat 格式化时间戳为标准时间字符串
func StandardFormat(ts int64) string {
return time.Unix(ts, 0).Format(STANDARD_FORMAT)
}
// ParseTime 按标准格式解析时间字符串
func ParseTime(value string) (time.Time, error) {
return time.ParseInLocation(STANDARD_FORMAT, value, time.Local)
}
// FormatTimestamp 格式化时间戳为指定格式
func FormatTimestamp(ts int64, layout string) string {
return time.Unix(ts, 0).Format(layout)
}
// ParseTimeWithFormat 按指定格式解析时间字符串
func ParseTimeWithFormat(value, layout string) (time.Time, error) {
return time.ParseInLocation(layout, value, time.Local)
}
// AddDuration 给指定时间增加指定的时间间隔
func AddDuration(t time.Time, duration string) (time.Time, error) {
d, err := time.ParseDuration(duration)
if err != nil {
return t, err
}
return t.Add(d), nil
}
// SubtractTimes 计算两个时间的差值
func SubtractTimes(t1, t2 time.Time) time.Duration {
return t1.Sub(t2)
}
func main() {
// 示例:当前时间
fmt.Println("当前标准时间:", GetCurrentTime()) // 当前标准时间: 2024-11-16 08:55:55
// 示例:当前时间戳
fmt.Println("当前时间戳(秒):", GetCurrentTimestamp())
fmt.Println("当前时间戳(毫秒):", GetCurrentMilliTimestamp())
// 示例:解析时间
timeStr := "2024-11-15 16:00:00"
parsedTime, err := ParseTime(timeStr)
if err != nil {
fmt.Println("时间解析错误:", err)
} else {
fmt.Println("解析时间:", parsedTime) // 解析时间: 2024-11-15 16:00:00 +0800 CST
}
// 示例:解析自定义格式时间
customTimeStr := "20241115"
customTime, err := ParseTimeWithFormat(customTimeStr, FLAT_DATE)
if err != nil {
fmt.Println("自定义格式时间解析错误:", err)
} else {
fmt.Println("自定义格式解析时间:", customTime)
}
// 示例:格式化时间戳
timestamp := int64(1700000000) // 示例时间戳
fmt.Println("标准格式化时间:", StandardFormat(timestamp))
fmt.Println("自定义格式化时间:", FormatTimestamp(timestamp, FLAT_DATE))
// 示例:增加时间间隔
newTime, err := AddDuration(parsedTime, "2h30m")
if err != nil {
fmt.Println("增加时间间隔错误:", err)
} else {
fmt.Println("增加时间间隔后的时间:", newTime)
}
// 示例:计算时间差
diff := SubtractTimes(newTime, parsedTime)
fmt.Println("时间差:", diff)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/jie_python/gopackage.git
git@gitee.com:jie_python/gopackage.git
jie_python
gopackage
gopackage
v1.0.108

搜索帮助

0d507c66 1850385 C8b1a773 1850385