检查时区的日期是不是超过当前时间
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。如果它们的差异为负,则日期已经超过该时区的当前时间。
【讨论】:
如果现在的日子变了怎么办? 嗯,我没有完全理解你的问题,但我想你现在每次这样做时都应该重新初始化,这样你就可以用当前时间重新计算。以上是关于检查时区的日期是不是超过当前时间的主要内容,如果未能解决你的问题,请参考以下文章