【问题标题】:Add time units to a date | python将时间单位添加到日期 | Python
【发布时间】:2019-05-02 18:39:31
【问题描述】:

我正在尝试从某个日期 + 五天后获取日、月和年的日期。

这是我的代码:

import datetime

day = datetime.datetime(2018,3,27).strftime("%d")
month = datetime.datetime(2018,3,27).strftime("%m")
year = datetime.datetime(2018,3,27).strftime("%Y")

day += datetime.timedelta(days=5)
month += datetime.timedelta(days=5)
year += datetime.timedelta(days=5)

print (day)
print (month)
print (year)

我得到的错误:

TypeError: must be str, not datetime.timedelta

我尝试使用 str() 进行转换,但 2019 年我得到了 20195。

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: python python-3.x python-2.7


    【解决方案1】:

    您为什么要分别计算日、月和年的时间增量?一次完成。

    import datetime
    
    start = datetime.datetime(2018,3,27)
    end = start + datetime.timedelta(days=5)
    
    print (end.day)
    print (end.month)
    print (end.year)
    

    【讨论】:

      【解决方案2】:

      在我看来,你让它变得比它需要的复杂一点:P。

      如果你只是稍微简化一下你的代码,它就可以正常工作。

      import datetime
      
      my_date = datetime.datetime(2018,3,27) + datetime.timedelta(days=5)
      
      print (my_date)
      

      什么时候跑

      2018-04-01 00:00:00
      

      如果你想像你的问题一样在不同的行上显示 3 个值,你可以这样做

      my_date.strftime('%d\n%m\n%Y')
      

      【讨论】:

        【解决方案3】:

        你应该穿这样的。

        from datetime import datetime
        from datetime import timedelta
        
        today = datetime.now()
        print(today)
             2019-05-02 15:46:58.262000
        
        today_plus_five_days = today + timedelta(days = 5)
        print(today_plus_five_days)
            2019-05-07 15:46:58.262000
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-21
          • 1970-01-01
          • 2011-09-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多