python 比较两个或多个时间,获取最大的时间(最近的时间)

自定义的公共函数

import date_time

def str2datetime(date_time, form="%Y-%m-%d %H:%M:%S"):
    _datetime = datetime.datetime.strptime(date_time, form) if isinstance(date_time, str) else date_time
    return _datetime


def datetime2str(date_time, form="%Y-%m-%d %H:%M:%S"):
    _datetime = datetime.datetime.strftime(date_time, form) if isinstance(date_time, datetime.datetime) else date_time
    return _datetime


def get_recent_datetime(date_time_list, form="%Y-%m-%d %H:%M:%S", response_type="str"):
    """
    获取最近的时间
    :param date_time_list: 时间列表
    :param form: 指定时间列表中的时间格式
    :param response_type: 函数返回结果的数据类型 datetime or str
    """
    recent_datetime = None
    for dt in date_time_list:
        dt = str2datetime(dt, form)
        recent_datetime = recent_datetime if recent_datetime and recent_datetime >= dt else dt
    
    if response_type == "str":
        recent_datetime = datetime2str(recent_datetime, form)
    elif response_type == "datetime":
        recent_datetime = str2datetime(recent_datetime, form)
    else:
        assert False, "response_type={} 参数错误, response_type当前仅支持 'datetime' 或 'str'".format(response_type)
    return recent_datetime


if __name__ == '__main__':

    now_date = datetime.datetime.now()  # 获取当前时间,type -> datetime
    datetime_str = "2024-9-19 15:36:07"  # 随便定义一个时间 type -> str
    
    dt_list = [now_date, datetime_str]
    result = get_recent_datetime(dt_list)  # 调用函数比较,获取最大的时间
    
    print(result)  
    print(type(result))

posted @ 2024-09-20 09:55  二月雪  阅读(77)  评论(0编辑  收藏  举报