各种日期格式的转换
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 is_number(obj):
try:
float(str(obj))
return True
except ValueError:
pass
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')
date_bef_str = (date_ori - relativedelta(days=n)).strftime('%Y-%m-%d %H:%M:%S')
date_time = datetime.datetime.strptime(date_bef_str, '%Y-%m-%d %H:%M:%S')
return date_time