You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python datetime中如何用字符串设置月份及计算日期天数差

问题1:如何用字符串形式的月份创建新日期?

直接写成y = datetime.datetime(2020, May, 17)不可行,因为May不是Python能识别的内置参数。可以通过以下两种方式实现需求:

  • 方法一:用datetime.strptime解析日期字符串
    将包含月份名称的日期字符串直接解析为datetime对象:

    import datetime
    date_str = "2020 May 17"
    y = datetime.datetime.strptime(date_str, "%Y %b %d")
    print(y)  # 输出: 2020-05-17 00:00:00
    

    格式说明:%b对应缩写月份名(如May),如果是全拼月份名可以用%B,需注意大小写匹配。

  • 方法二:手动映射月份名到数字
    先创建月份名与对应数字的字典,再传入datetime构造函数:

    import datetime
    month_map = {
        "Jan": 1, "Feb": 2, "Mar": 3, "Apr": 4,
        "May": 5, "Jun": 6, "Jul": 7, "Aug": 8,
        "Sep": 9, "Oct": 10, "Nov": 11, "Dec": 12
    }
    y = datetime.datetime(2020, month_map["May"], 17)
    print(y)  # 输出: 2020-05-17 00:00:00
    
问题2:如何只显示两个时间的天数差?

你找到的方法是正确的,直接访问timedelta对象的days属性即可获取整数形式的天数差,不会包含时分秒信息:

import datetime
x = datetime.datetime(2024, 5, 17)
now = datetime.datetime.now()
print('Time difference:', (x - now).days)

内容的提问来源于stack exchange,提问作者andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:07:08