在Python中将Date转换为datetime.datetime?或相反亦然?

时间:2018-10-22 15:42:12

标签: python-2.7 datetime nosql timestamp cassandra-3.0

背景:

我一直在尝试比较数据库中的两个日期,以查看记录的最后修改时间以及是否应该再次更新它们。我对同时使用Python 2.7和Cassandra 3.0还是比较陌生,但是我还没有找到其他解决办法。

问题

if(last_modified <= db_last_modified):
TypeError: can't compare datetime.datetime to Date

其他信息

#I'm getting the last_modified record in the database

last_modified = self.object.record.last_modified

db_last_modified = record_helper.get_last_modified_record()[0]['last_modified']

    print(type(last_modified)) # <type 'datetime.datetime'>
    print(type(db_last_modified)) # <class 'cassandra.util.Date'>        

    if(last_modified <= db_last_modified):
        print("Already processed newer or equivalent version.")
        logging.info("Already processed a newer version of the metadata. Please check your files and try again.")
        return

1 个答案:

答案 0 :(得分:0)

类'cassandra.util.Date'具有一个函数date()。它将转换为datetime.date对象。

因此类型(db_last_modified.date())将为<class 'datetime.date'>

您还需要将datetime.datetime转换为datetime.date。您可以使用date()来实现。

例如:datetime.datetime(2018,11,20).date()-> datetime.date(2018,11,20)

现在您可以比较它们了。

因此将行更改为if(last_modified.date() <= db_last_modified.date()):