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


    此处使用的是python的标准库:datetime

    先要引用:

    from datetime import datetime, timedelta

    日期转字符串:
    1. def date2str(datetime1:datetime, strformat:str=None):
    2. """
    3. 日期转字符串
    4. """
    5. try:
    6. if strformat is None or strformat == "":
    7. return datetime1.strftime('%Y-%m-%d %H:%M:%S')
    8. else:
    9. return datetime1.strftime(strformat)
    10. except BaseException as ex:
    11. exstr = "无法转换成str"
    12. raise ex

    使用方式:

    1. datetime3 = datetime.now()
    2. datetime3fm = "%Y-%m-%d"
    3. datetime3str = date2str(datetime3, datetime3fm)

    字符串转日期:

    1. def str2date(datetimestr:str, strpattern:str=None):
    2. """
    3. 字符串转日期
    4. """
    5. try:
    6. if strpattern is None or strpattern == "":
    7. return datetime.strptime(datetimestr, '%Y-%m-%d %H:%M:%S')
    8. else:
    9. return datetime.strptime(datetimestr, strpattern)
    10. except BaseException as ex:
    11. exstr = "格式不匹配,无法转换成datetime"
    12. raise ex

    使用方式:

    1. datetime4str = "2022-10-22 10:20"
    2. datetime4pattern = "%Y-%m-%d %H:%M"
    3. datetime4 = str2date(datetime4str, datetime4pattern)

    日期的加减计算:

    1. def date_calculate(datetime1:datetime, adddays:int):
    2. """
    3. 字符串时间的日期加减
    4. """
    5. try:
    6. return datetime1 - timedelta(days=-adddays)
    7. except BaseException as ex:
    8. exstr = "计算出错"
    9. raise ex

    使用方式:

    1. datetime1 = datetime.now()
    2. datetime2 = date_calculate(datetime1, -1)

    自定义日期:

    1. def getnewDate(year:int=None, month:int=None, day:int=None, hour:int=None, minute:int=None, second:int=None, microsecond:int=None):
    2. """
    3. 当前时间基础上自定义日期
    4. """
    5. try:
    6. timenow = datetime.now()
    7. timenow = timenow if year is None else timenow.replace(year=year)
    8. timenow = timenow if month is None else timenow.replace(month=month)
    9. timenow = timenow if day is None else timenow.replace(day=day)
    10. timenow = timenow if hour is None else timenow.replace(hour=hour)
    11. timenow = timenow if minute is None else timenow.replace(minute=minute)
    12. timenow = timenow if second is None else timenow.replace(second=second)
    13. timenow = timenow if microsecond is None else timenow.replace(microsecond=microsecond)
    14. return timenow
    15. except BaseException as ex:
    16. exstr = "获取出错"
    17. raise ex

    使用方式:

    datetime1 = getnewDate(year=2001, hour=10)

    如果需要对上述代码修改,容易被忽视的一点是:

    字符串转日期,使用的是:strptime

    日期转字符串,使用的是:strftime

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

  • 相关阅读:
    24 DRF详细学习篇章一|Requests|Responses|View|Routers
    js 设计模式(灵活的语言 JavaScript)
    栈与队列经典题目——用队列实现栈
    测试流程如何有效落地?
    Rust教程6:并发编程和线程通信
    Go指针探秘:深入理解内存与安全性
    状态估计|基于 MMSE 的分析估计器的不确定电力系统分析(Matlab代码实现)
    (shorthand) pixelNeRF: Neural Radiance Fields from One or Few Images
    【无标题】
    使用 SwiftUI 请求 App Store 评级,要求用户在 App Store 中对您的应用进行评分和评论的操作指南
  • 原文地址:https://blog.csdn.net/u010182162/article/details/127987325