代码拉取完成,页面将自动刷新
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)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。