美文网首页
golang日期格式之间的相互转换

golang日期格式之间的相互转换

作者: butters001 | 来源:发表于2023-07-17 14:31 被阅读0次

    1. 获取当前时间字符串(北京时间)

    import "time"
    
    // "2023-05-29 15:10:41"
    func GetNowStr() string {
        loc, _ := time.LoadLocation("Asia/Shanghai")
        return time.Now().In(loc).Format("2006-01-02 15:04:05")
    }
    
    

    2. 时间戳转时间字符串(北京时间)

    import "time"
    
    func TransTimestampToStr(Timestamp int64) string {
        timeLayout := "2006-01-02 15:04:05"
        loc, _ := time.LoadLocation("Asia/Shanghai")
        timeStr := time.Unix(Timestamp, 0).In(loc).Format(timeLayout)
        return timeStr
    }
    
    

    3. 时间字符串转时间戳(北京时间)

    import "time"
    
    func TransTimeStrToStamp(timeStr string) (formatTime time.Time, err error) {
        if len(timeStr) == 10 {
            timeStr += " 00:00:00"
            loc, _ := time.LoadLocation("Asia/Shanghai")
            formatTime, err := time.ParseInLocation("2006-01-02 15:04:05", timeStr, loc)
            return formatTime, err
        } else if len(timeStr) == 19 {
            loc, _ := time.LoadLocation("Asia/Shanghai")
            formatTime, err := time.ParseInLocation("2006-01-02 15:04:05", timeStr, loc)
            return formatTime, err
        }
        return formatTime, errors.New("timeStr format error")
    }
    
    rTime, err := TransTimeStrToStamp(timeStr)
    if err != nil {
        return ""
    }
    rTimestamp := rTime.Unix()
    
    

    4. 过去时间(timeStr)距离现在差几天

    // 计算相差天数
    func CalcTime(timeStr string) string {
        nowTimestamp := time.Now().Unix()
        recordTime, err := TransTimeStrToStamp(timeStr)
        if err != nil {
            return ""
        }
        recordTimestamp := recordTime.Unix()
        timeDiff := int(math.Ceil(float64(nowTimestamp-recordTimestamp) / 86400))
        if timeDiff > 0 {
            return fmt.Sprintf("已超时%d天", timeDiff)
        }
        return ""
    }
    
    

    相关文章

      网友评论

          本文标题:golang日期格式之间的相互转换

          本文链接:https://www.haomeiwen.com/subject/npjgudtx.html