【Python小工具函数】各种日期格式的转换、在某个日期上减去n天、判断List中是否含有数字

各种日期格式的转换

def YYYY_mm_dd_HH_MM_SS_to_datetime(datetime_str):
    """
    :param datetime_str: 2020-2-12 13:34:58
    :return: datetime 类型
    """
    date_time = datetime.datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S')
    return date_time


def YYYY_mm_dd_to_datetime(datetime_str):
    """
    :param datetime_str: 2020-2-12
    :return: datetime 类型
    """
    date_time = datetime.datetime.strptime(datetime_str, '%Y-%m-%d')
    return date_time


def YYYYmmdd_to_datetime(datetime_str):
    """
    :param datetime_str: 20200212
    :return: datetime 类型
    """
    date_time = datetime.datetime.strptime(datetime_str, '%Y%m%d')
    return date_time


def datetime_to_YYYY_mm_dd_HH_MM_SS(date_time):
    """
    :param date_time: datetime 类型
    :return: 2020-2-12 13:34:58
    """
    date_time_str = datetime.datetime.strftime(date_time, '%Y-%m-%d %H:%M:%S')
    return date_time_str


def datetime_to_YYYYmmdd(date_time):
    """
    :param date_time: datetime 类型
    :return: 20200212
    """
    date_time_str = datetime.datetime.strftime(date_time, '%Y%m%d')
    return date_time_str


def datetime_to_YYYY_mm_dd(date_time):
    """
    :param date_time: datetime 类型
    :return: 2020-02-12
    """
    date_time_str = datetime.datetime.strftime(date_time, '%Y-%m-%d')
    return date_time_str


def YYYY_mm_dd_HH_MM_SS_to_YYYYmmdd(YYYY_mm_dd):
    """
    :param datetime_str: 2020-2-12 13:34:58
    :return: 20200212
    """
    date_time = YYYY_mm_dd_HH_MM_SS_to_datetime(YYYY_mm_dd)
    YYYYmmdd = datetime_to_YYYYmmdd(date_time)
    return YYYYmmdd


def YYYY_mm_dd_HH_MM_SS_to_YYYY_mm_dd(YYYY_mm_dd_HH_MM_SS):
    """
    :param datetime_str: 2020-2-12 13:34:58
    :return: 2020-02-12
    """
    date_time = YYYY_mm_dd_HH_MM_SS_to_datetime(YYYY_mm_dd_HH_MM_SS)
    YYYY_mm_dd = datetime_to_YYYY_mm_dd(date_time)
    return YYYY_mm_dd


def YYYY_mm_dd_to_YYYY_mm_dd_HH_MM_SS(YYYY_mm_dd):
    """
    :param datetime_str: 2020-02-12
    :return: 2020-2-12 13:34:58
    """
    date_time = YYYY_mm_dd_to_datetime(YYYY_mm_dd)
    YYYY_mm_dd_HH_MM_SS = datetime_to_YYYY_mm_dd_HH_MM_SS(date_time)
    return YYYY_mm_dd_HH_MM_SS


def datetime_sub_n_day(date_time, n):
    """
    获取在date_time基础上减n天的日期
    :param date_time: datetime 类型
    :param n: 日期减n天
    :return: datetime 类型
    """
    YYYY_mm_dd_HH_MM_SS = datetime_to_YYYY_mm_dd_HH_MM_SS(date_time)
    n_day_bef_datetime = get_datetime_n_day_bef(YYYY_mm_dd_HH_MM_SS, n=n)
    return n_day_bef_datetime

判断List中是否含有数字

def list_has_no_valid_value(one_list):
    """
    判断list中是否不含有效数据
    如果含有有效数据,返回False
    如果不含有效数据,返回True
    :param one_list:
    :return:
    """
    for one_value in one_list:
        if is_number(one_value):
            return False
    return True

在某个日期上减去n天

def YYYYmmdd_sub_n_day(YYYYmmdd,n):
    """
    获取在YYYYmmdd基础上减n天的日期
    :param YYYYmmdd: e.g. 20200212
    :param n: 日期减n天
    :return: e.g. 20200205
    """
    date_time = YYYYmmdd_to_datetime(YYYYmmdd)
    res_date_time = datetime_sub_n_day(date_time, n)
    res_YYYYmmdd = datetime_to_YYYYmmdd(res_date_time)
    return res_YYYYmmdd

def get_datetime_n_day_bef(date_ori_str, n):
    """
    根据初始日期,获取在其基础上减n日的日期
    :param date_ori_str: 初始日期字符串,%Y-%m-%d %H:%M:%S格式
    :param n: 要减的天数
    :return: n天前的日期,datetime类型
    """
    # 考虑闰年
    date_ori = datetime.datetime.strptime(date_ori_str, '%Y-%m-%d %H:%M:%S')
    # print 'date_ori='+str(date_ori)
    date_bef_str = (date_ori - relativedelta(days=n)).strftime('%Y-%m-%d %H:%M:%S')
    # print 'date_bef_str='+str(date_bef_str)
    date_time = datetime.datetime.strptime(date_bef_str, '%Y-%m-%d %H:%M:%S')
    return date_time

发布了610 篇原创文章 · 获赞 232 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/sinat_42483341/article/details/104348691