python中日期转字符串/字符串转日期

此处使用的是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

注意两个方法是不一样的!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

willgon123

谢谢打赏,我将再接再厉!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值