我将如何解决Python上的这个问题.这是我的代码:
import time
import datetime
from time import mktime
from datetime import datetime
date = '20120814174530'
date_to_strp = time.strptime(date, '%Y%m%d%H%M%S') #convert the value of date into strptime
date_final = datetime.fromtimestamp(mktime(date_to_strp))
#convert date_to_strp so so i can use it to subtract a value from a timedelta later
date_substracted = date_final - datetime.timedelta(hours = 36)
Run Code Online (Sandbox Code Playgroud)
这有一个错误:
类型对象'datetime.datetime'没有属性'timedelta'
即使我import datetime,我认为它是由重写from datetime import datetime,但是当我改变的位置mport datetime和from datetime import datetime,错误的是:
'module'对象没有'fromtimestamp'属性
我可以用这段代码解决这个错误:
import time
from time import mktime
from datetime import datetime
date = '20120814174530'
date_to_strp = time.strptime(date, '%Y%m%d%H%M%S')
date_final = datetime.fromtimestamp(mktime(date_to_strp))
import datetime
date_substracted = date_final - datetime.timedelta(hours = 36)
Run Code Online (Sandbox Code Playgroud)
现在,使用此代码它运行正常,但我想要的是所有导入部分将作为一个良好的做法在顶部,任何建议如何我这样做没有任何错误与这种情况或任何建议我将如何以其他方式编码.
eca*_*mur 25
使用datetime.datetime.fromtimestamp或更改导入from datetime import datetime as dt和使用dt.fromtimestamp.
不要使用直接导入,如:
import decimal
import datetime
Run Code Online (Sandbox Code Playgroud)
它会导致:
datetime.datetime.today()
decimal.Decimal()
Run Code Online (Sandbox Code Playgroud)
考虑一下:
from datetime import datetime
from decimal import Decimal
print datetime.now()
print Decimal("1")
Run Code Online (Sandbox Code Playgroud)
小智 5
我想你应该像这样单独导入timedelta.
from datetime import datetime as dt, timedelta
Run Code Online (Sandbox Code Playgroud)
然后你可以打电话
dt.fromtimestamp(mktime(date_to_strp))
Run Code Online (Sandbox Code Playgroud)
和
timedelta(hours = 36)
Run Code Online (Sandbox Code Playgroud)