golang 时间加减

time包中的Add和Sub的用法,Add用于计算某个时间之前和之后的时间点,Sub用于计算两个时间差

package main

import (
    "fmt"
    "strings"
    "time"
)

func main() {
    // Add 时间相加
    now := time.Now()
    // ParseDuration parses a duration string.
    // A duration string is a possibly signed sequence of decimal numbers,
    // each with optional fraction and a unit suffix,
    // such as "300ms", "-1.5h" or "2h45m".
    //  Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".

 // 1分钟前
    m, _ := time.ParseDuration("-1m")
    m1 := now.Add(m)
    fmt.Println(m1)

    // 1个小时前
    h, _ := time.ParseDuration("-1h")
    h1 := now.Add(8 * h)
    fmt.Println(h1)

    // 一天前
    d, _ := time.ParseDuration("-24h")
    d1 := now.Add(d)
    fmt.Println(d1)

    printSplit(50)

    // 10分钟后
    mm, _ := time.ParseDuration("10m")
    mm1 := now.Add(mm)
    fmt.Println(mm1)

    // 1小时后
    hh, _ := time.ParseDuration("1h")
    hh1 := now.Add(hh)
    fmt.Println(hh1)

   // 一天后
    dd, _ := time.ParseDuration("24h")
    dd1 := now.Add(dd)
    fmt.Println(dd1)

    printSplit(50)

    // Sub 计算两个时间差
    subM := now.Sub(m1)
    fmt.Println(subM.Minutes(), "分钟")

    sumH := now.Sub(h1)
    fmt.Println(sumH.Hours(), "小时")

    sumD := now.Sub(d1)
    fmt.Printf("%v 天\n", sumD.Hours()/24)

}

func printSplit(count int) {
    fmt.Println(strings.Repeat("#", count))
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
嗨,我是波波。曾经创业,有收获也有损失。我积累了丰富教学与编程经验,期待和你互动和进步! 公众号:上海PHP自学中心
wangchunbo
讨论数量: 1

可以试下这个 github.com/golang-module 一个轻量级、语义化、对开发者友好的Golang时间处理库,支持链式调用和gorm、xorm等主流orm

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
司机 @ 某医疗行业
文章
303
粉丝
348
喜欢
563
收藏
1125
排名:61
访问:12.5 万
私信
所有博文
社区赞助商