首页 > 解决方案 > python中的日期时间错误有什么解决方案吗?

问题描述

我的代码需要帮助,因为我是 python 新手。我在我的代码中使用 DateTime 库来了解当前的日期时间,并使用 doy1 来查找一年中的哪一天。

我尝试将 python 3.6 idle 与不同的模块一起使用,之后,我使用了 Visual Studio community 2017(只是为了我的满意),但它向我显示了一个错误。我知道这不是工具问题,但我只是尝试过。

import datetime
from dateutil import parser
from datetime import datetime

ask=input("enter date\n")
date_format = "%Y-%m-%d"
date_time = datetime.strptime(ask, date_format)
Current_date = datetime.strptime((str(datetime.now().date())), date_format)

print(Current_date)

doy1=date_time.strftime("%j")# day of year

  date=datetime.now()
  doy2=date.strftime("%j")
  if(doy1<doy2):
    diff_of_dates=abs(int(doy1)-int(doy2))
    print(diff_of_dates)
    diff=diff_of_dates+1
    for i in range(1,diff):
      avg_20=int(doy1)+1
      print(doy1)
      temp_date=datetime.date(date_format)+datetime.timedelta(doy1-1)
      print("Difference of day",temp_date)


#ERROR
Traceback (most recent call last):
  File "C:\Users\Muahr\source\repos\RCAI-Project\Pest\temperature.py", line 157, in <module>
    temp_date=datetime.date(date_format)+datetime.timedelta(doy1-1)
TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'str'

标签: python

解决方案


我想我用下面的代码解决了一些问题。基本上,您在 datetime.date() 对象中放置了一个字符串。您使用的字符串是 date_format 变量,它在下一行定义了 date_time 变量。当您分配 temp_date 时,我放置了 date_time 变量,并且该错误消失了。

我发现您调用 timedelta 的方式存在次要问题,我去掉了 datetime 前缀并导入了 timedelta,解决了这个问题。下面的代码运行,但它没有执行您在调用 timedelta 时选择的计算。

temp_date=datetime.date(date_time)+timedelta()

还更改了类导入行:

from datetime import datetime, timedelta

推荐阅读