计算python中的时差

时间:2017-03-30 16:22:56

标签: python postgresql datetime sqlalchemy

postgresql中定义的日期时间表字段:  Column("created_on",DateTime(timezone=True),default=datetime.datetime.utcnow)

在python代码中,我将当前时间转换为识别时间为:

mcurr_time = datetime.datetime.now().replace(tzinfo=pytz.UTC)

我得到的时间是:

  

2017-03-30 21:44:51.394387 + 00:00

当我使用sqlalchemy从表中检索时间时,我得到:

  

mcreation_time = 2017-03-30 15:05:01.350078 + 05:30

如何找到2之间的差异或必须使用什么转换 比较差异与小时数?所有表都有时区 知道日期时间。我需要确切的代码,因为我检查了所有的例子并且很困惑。

2个日期的差异在没有任何转换的情况下有效。结果必须与示例2小时(变量var1)进行比较,并根据输出,需要采取某些操作。这2小时我转换为:

mcalc = datetime.timedelta(seconds=var1*60*60)

所以我想做的是,

diff_tm = (mcurr_time - mcreations_time)

if diff_tm > mcalc:
    do_some1()
else:
    do_some2()

不知道在任何日期是否需要任何转换,最好是当前时间,因为我的所有表格都是如上所述定义的。 两个日期的时差应该来自任何客户,即来自世界上任何地方的

1 个答案:

答案 0 :(得分:0)

通过删除时区偏移并在计算中使用来解决它:

mcurr_time = datetime.datetime.utcnow().replace(tzinfo=pytz.UTC)
mcurr_time = mcurr_time.replace(
          tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None))

mcreation_time = mcreation_time.replace(
          tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None))
相关问题