前要:好记性不如烂笔头

目标一:时间戳转时间格式

过程:时间戳=>Time, Time=>需要的时间格式

// TimestampToTime 时间戳到时间
// timestamp int64:转换的时间戳
// layout string 需要转换的时间格式
func TimestampToTime(timestamp int64,layout string) string {
    return time.Unix(timestamp, 0).Format(layout)
}

使用:

    timestamp := time.Now().Unix()
    fmt.Println(TimestampToTime(timestamp,"2006-01-02 15:04:05 PM"))

目标二:时间格式到时间戳的转换

过程:需要的时间格式=>Time,Time=>时间戳

// TimeToTimestamp 时间字符串到时间戳,你需要知道你的时间字符串格式
// layout 解析的时间格式,
// timestr 转换的时间
func TimeToTimestamp(layout,timestr string) (int64, error) {
    loc, err := time.LoadLocation("Local")
    if err != nil {
        return -1, err
    }
    times, err := time.ParseInLocation(layout, timestr, loc)
    if err != nil {
        return -1, err
    }
    trantimestamp := times.Unix()
    return trantimestamp, nil
}

使用:

trantimestamp, err := TimeToTimestamp("2006-01-02 15:04:05 PM","2017-09-07 09:49:54 AM")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println("trantimestamp:",trantimestamp)

目标三:判断一个时间点是否在一个时间点之后

过程:这个对于时间戳而言非常简单,但是对于其他的需要转换到time即可对比

    stringToTime, _ := time.Parse("2006-01-02 15:04:05", "2017-12-12 12:00:00")
    beforeOrAfter := stringToTime.After(time.Now())
    if beforeOrAfter == true {
        fmt.Println("2017-12-12 12:00:00在tNow之后!")
    } else {
        fmt.Println("2017-12-12 12:00:00在tNow之前!")
    }
// AfterTime 判断一个时间在现在之前还是之后
// layout 解析的时间格式,
// judeTime 需要判断的时间
// bool =true  在当前时候之后,false在当前时间之前
func AfterTime(layout, judeTime string) (bool, error) {
    stringToTime, err := time.Parse(layout, judeTime)
    if err != nil {
        return false, err
    }
    beforeOrAfter := stringToTime.After(time.Now())
    if beforeOrAfter == true {
        return true, nil
    } else {
        return false, nil
    }
}

目标四:判断一个时间相比另外一个时间点过去了多久

过程:这个是用Time的方式来对比

   beginTime :=time.Now()
    time.Sleep(time.Second*1)
    durtime:= time.Since(beginTime)
    fmt.Println("离现在过去了:",durtime)