检查时区的日期是不是超过当前时间

Posted

技术标签:

【中文标题】检查时区的日期是不是超过当前时间【英文标题】:Check if the date of a timezone is passed current time检查时区的日期是否超过当前时间 【发布时间】:2015-12-23 07:16:04 【问题描述】:

我收到格式为12:00 的时间,并且我还有一个格式为<DstTzInfo 'Europe/Paris' PMT+0:09:00 STD> 的时区。我想看看,如果这个日期已经过了那个时区的当前时间。

我当前的时区可能与我收到的时区不同,所以我使用以下时区:

tz = pytz.timezone('Europe/Paris')
d = parse("14:39").replace(tzinfo=tz)
now = datetime.datetime.now(tz)
print (d - now).total_seconds()

即使现在巴黎的时间是 14:39,我仍然得到 6600 秒。我也试过now = datetime.datetime.replace(tzinfo=tz),但我得到-3600秒。

我想要的是在指定的时区有时间,检查它是否通过。

【问题讨论】:

【参考方案1】:

这个呢:

from datetime import datetime
from dateutil import tz

tz = tz.gettz('Europe/Paris')
now = datetime.now().replace(tzinfo=tz)
d = datetime.strptime("0/1/2 14:39".format(now.year,now.month,now.day), "%Y/%m/%d %H:%M").replace(tzinfo=tz)

print (d-now).total_seconds()

我将当前时间保留在欧洲/巴黎时区的 now 中,并在同一时区创建 d。如果它们的差异为负,则日期已经超过该时区的当前时间。

【讨论】:

如果现在的日子变了怎么办? 嗯,我没有完全理解你的问题,但我想你现在每次这样做时都应该重新初始化,这样你就可以用当前时间重新计算。

以上是关于检查时区的日期是不是超过当前时间的主要内容,如果未能解决你的问题,请参考以下文章

php 检查当前日期已超过特定日期

如何在 Python 中获取或打印 GMT 时区的当前日期时间? [复制]

如何在 Java 中获取时区的当前日期和时间?

在Java中获取当前时区的日期

MongoDB 日期类型查询

不显眼的验证/jQuery 客户端验证输入的日期是不是超过当前日期