golang 实现时间差
package main
import (
"fmt"
"time"
)
func printDemo(i interface{}) {
fmt.Printf("value:%v,type:%T\n", i, i)
}
// 取当前时间到其他时间的差值
func subDemo(ts string) string {
// 本地时间
now := time.Now()
printDemo(now)
// 按照指定格式解析一个字符串格式的时间
_, err := time.Parse("2006-01-02 15:04:05", ts)
if err != nil {
fmt.Printf("parse string err:%v\n", err)
return err.Error()
}
// 按照东八区的时区格式解析一个字符串
tlocal, err := time.LoadLocation("Asia/Shanghai")
if err != nil {
fmt.Printf("Parse a string according to the time zone format of Dongba district err:%v\n", err)
return err.Error()
}
// 按照指定的时区解析时间
t, err := time.ParseInLocation("2006-01-02 15:04:05", ts, tlocal)
if err != nil {
fmt.Printf("Resolve the time according to the specified time zone:%v\n", err)
return err.Error()
}
// 计算时间的差值
reverseTime := now.Sub(t)
printDemo(reverseTime)
return reverseTime.String()
}
func main() {
result := subDemo("2022-03-04 12:00:00")
printDemo(result)
}