Go 时间处理

作者: 太阳上的雨天 分类: Go 发布时间: 2022-07-14 11:20

1. 时间戳转日期格式

时间戳为int64 

s := time.Now().Unix()
date := time.Unix(s, 0).Format("2006-01-02 15:04:05")
fmt.Println(date)

2. 日期格式转时间戳

date := "2022-07-14 11:00:00"
t, _ := time.ParseInLocation("2006-01-02 15:04:05", date, time.Local)
fmt.Println(t.Unix())

3. Int 转 time.Duration

s := 1657767452
fmt.Println(time.Duration(int64(s)) * time.Second)

4. string转 time.Duration

s := "1657767452"
s1, _ := strconv.Atoi(s)
fmt.Println(time.Duration(int64(s1)) * time.Second)

5. 获取当前年月日

nowDate := time.Now().Format("2006-01-02")
fmt.Println(nowDate)

6. 获取当前零点时间(日期格式和时间戳)

nowDate := time.Now().Format("2006-01-02") + " 23:59:59"
t, _ := time.ParseInLocation("2006-01-2 15:04:05", nowDate, time.Local)
s := t.Unix()
fmt.Println(s)

7. 计算当前时间和零点的时间差

now := time.Now().Unix()
nowDate := time.Now().Format("2006-01-02")

targetDate := nowDate + " 23:59:59"

targetTime, _ := time.ParseInLocation(t.Layout, targetDate, time.Local)
targetSecond := targetTime.Unix()

return time.Duration(targetSecond-now) * time.Second

8. 获取以前制定的时间和以后的时间

以 天 为例子
获取前一天 和 明天的当前时间

currentTime := time.Now()
    oldTime := currentTime.AddDate(0, 0, -1)
    fmt.Println(oldTime)

    featureTime := currentTime.AddDate(0, 0, 1)
    fmt.Println(featureTime)

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注