golang 实现时间差

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)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值