zoukankan      html  css  js  c++  java
  • python数据处理——bsonId与时间戳的相互转换

    使用背景:

           在不覆盖_id的情况下,mongoDB会根据时间生成对应的bsonId。可以根据bsonId来知道数据的入库时间。下面是实现bsonId与时间戳的相互转换

    import datetime
    import time
    from bson import ObjectId
    
    
    def timestamp_from_objectid(objectId):
        """
        bson_objectId 转化为 时间戳
    
        :param objectid: bson_objectId
        :return: 时间戳(秒级)
        """
        result = 0
        try:
            result = time.mktime(objectId.generation_time.timetuple())
        except:
            pass
        return result
    
    
    def general_obj_from_time(timestamp=None, time_delta=None):
        """
        时间戳 转化为 bson_objectId
    
        :param from_datetime: 时间元组
        :param time_delta: 是datetime.timedelta类型,可以进行时间的加减运算
        :return:
        """
        from_datetime = datetime.datetime.fromtimestamp(timestamp)
        if from_datetime is None or not isinstance(from_datetime, datetime.datetime):
            from_datetime = datetime.datetime.now()
        if time_delta:
            from_datetime = from_datetime + time_delta
        return ObjectId.from_datetime(from_datetime)
    
    # 使用案例
    if __name__ == '__main__': print(general_obj_from_time(1624809600)) print(timestamp_from_objectid(ObjectId("60d911000000000000000000")))
  • 相关阅读:
    UI控件
    iOS 上架
    UISwitch 开关
    UISlider 的属性
    SQL SERVER 触发器
    sql server数据库操作
    二叉堆实现优先队列
    散列表
    AVL树
    C++基础-02
  • 原文地址:https://www.cnblogs.com/yumoblogs/p/14983763.html
Copyright © 2011-2022 走看看