golang 实现时间差

时间:2025-03-01 20:56:08
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) }