为了账号安全,请及时绑定邮箱和手机立即绑定

如何准确比较两个时间点?

如何准确比较两个时间点?

Go
海绵宝宝撒 2022-10-24 15:39:20
我有两个时间实例。have我从数据库和Now()时间中获取。一旦我想用 比较它们After,结果就不是我所期望的。实例如下:// have => 2022-01-09 09:09:59 +0000 +0000// now  => 2022-01-09 11:57:08.990265878 +0300 +0300 m=+4.977355713 if now.After(have) {    // ...}我期望true上述条件的结果,而它返回false。为了更好地解决这个问题,我将它们转换为 Unix 时间,Unix()令人惊讶的是,它的值have略大于now,这就是条件返回的原因false。显然now是 afterhave但它的 Unix 时间小于have. 由于我想知道此案,请您告诉我我错在哪里?更新 问题与时区有关。我没有注意到它。所以我添加了以下代码:loc, _ := time.LoadLocation("Local")    have = have.In(loc)然后一旦我打印出来,它是这样的:have => 2022-01-09 12:09:59 +0300 +0300这就是条件返回错误的原因。
查看完整描述

1 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

这两个时间位于不同的时区:have在 UTC 中,now+0300now因此,在将其与其他时间进行比较之前,您必须从值的日期/时间部分中减去 3 小时。



查看完整回答
反对 回复 2022-10-24
  • 1 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信