此处使用的是python的标准库:datetime
先要引用:
from datetime import datetime, timedelta
日期转字符串:
def date2str(datetime1:datetime, strformat:str=None):
"""
日期转字符串
"""
try:
if strformat is None or strformat == "":
return datetime1.strftime('%Y-%m-%d %H:%M:%S')
else:
return datetime1.strftime(strformat)
except BaseException as ex:
exstr = "无法转换成str"
raise ex
使用方式:
datetime3 = datetime.now()
datetime3fm = "%Y-%m-%d"
datetime3str = date2str(datetime3, datetime3fm)
字符串转日期:
def str2date(datetimestr:str, strpattern:str=None):
"""
字符串转日期
"""
try:
if strpattern is None or strpattern == "":
return datetime.strptime(datetimestr, '%Y-%m-%d %H:%M:%S')
else:
return datetime.strptime(datetimestr, strpattern)
except BaseException as ex:
exstr = "格式不匹配,无法转换成datetime"
raise ex
使用方式:
datetime4str = "2022-10-22 10:20"
datetime4pattern = "%Y-%m-%d %H:%M"
datetime4 = str2date(datetime4str, datetime4pattern)
日期的加减计算:
def date_calculate(datetime1:datetime, adddays:int):
"""
字符串时间的日期加减
"""
try:
return datetime1 - timedelta(days=-adddays)
except BaseException as ex:
exstr = "计算出错"
raise ex
使用方式:
datetime1 = datetime.now()
datetime2 = date_calculate(datetime1, -1)
自定义日期:
def getnewDate(year:int=None, month:int=None, day:int=None, hour:int=None, minute:int=None, second:int=None, microsecond:int=None):
"""
当前时间基础上自定义日期
"""
try:
timenow = datetime.now()
timenow = timenow if year is None else timenow.replace(year=year)
timenow = timenow if month is None else timenow.replace(month=month)
timenow = timenow if day is None else timenow.replace(day=day)
timenow = timenow if hour is None else timenow.replace(hour=hour)
timenow = timenow if minute is None else timenow.replace(minute=minute)
timenow = timenow if second is None else timenow.replace(second=second)
timenow = timenow if microsecond is None else timenow.replace(microsecond=microsecond)
return timenow
except BaseException as ex:
exstr = "获取出错"
raise ex
使用方式:
datetime1 = getnewDate(year=2001, hour=10)
如果需要对上述代码修改,容易被忽视的一点是:
字符串转日期,使用的是:strptime
日期转字符串,使用的是:strftime
注意两个方法是不一样的!