此处使用的是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
注意两个方法是不一样的!