2011-04-11 16 views
22

प्राप्त हुआ है मेरे कोड में मैं उपयोगकर्ता को dd/mm/yyyy प्रारूप में दिनांक के लिए पूछता हूं।समस्या निवारण "descriptor 'date' को 'datetime.datetime' ऑब्जेक्ट की आवश्यकता होती है लेकिन उसे 'int' '

currentdate = raw_input("Please enter todays date in the format dd/mm/yyyy: ") 
day,month,year = currentdate.split('/') 
today = datetime.date(int(year),int(month),int(day)) 

यह त्रुटि देता है

TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int'

अगर मैं int() को दूर तो मैं एक ही त्रुटि के साथ अंत केवल यह कहना है कि वह एक 'str'

प्राप्त क्या मैं गलत कर रहा हूँ?

उत्तर

4

मैं अगर मैं

from datetime import * 

कर त्रुटि पुन: पेश कर सकते हैं यह गायब हो जाता है जब मैं कर

import datetime 

तो अपने आयात की जाँच करें।

33

ऐसा लगता है कि आपने datetime के बजाय datetime.datetime मॉड्यूल आयात किया है। यह हालांकि काम करना चाहिए:

import datetime 
currentdate = raw_input("Please enter todays date in the format dd/mm/yyyy: ") 
day,month,year = currentdate.split('/') 
today = datetime.date(int(year),int(month),int(day)) 

इस ..or:

from datetime import date 
currentdate = raw_input("Please enter todays date in the format dd/mm/yyyy: ") 
day,month,year = currentdate.split('/') 
today = date(int(year),int(month),int(day)) 
+0

बहुत धन्यवाद यह काम करता है –

18

आप इस तरह आयात करते हैं?

from datetime import datetime 

तो फिर तुम इस तरह देखने के लिए यह परिवर्तन करना होगा:

import datetime 

स्पष्टीकरण: पहला मामला आप प्रभावी रूप से बुला रहे हैं datetime.datetime.date(), मॉड्यूल datetime में वस्तु datetime पर एक विधि में। बाद के मामले में आप निर्माता datetime.date() के साथ एक नया date() ऑब्जेक्ट बनाते हैं।

वैकल्पिक रूप से, आप के लिए आयात बदल सकते हैं:

from datetime import datetime, date 

और उसके बाद (datetime. उपसर्ग के बिना) date(y,m,d) साथ निर्माण।

2

मुझे संदेह है कि datetime ऑब्जेक्ट का संदर्भ देता है न कि मॉड्यूल।

from datetime import datetime 
currentdate = raw_input("Please enter todays date in the format dd/mm/yyyy: ") 
day,month,year = currentdate.split('/') 
today = datetime.date(int(year),int(month),int(day)) 

आप इस प्रकार बुला रहे हैं datetime वर्ग के date विधि के बजाय datetime मॉड्यूल के date फ़ंक्शन कॉल: आप शायद निम्नलिखित कोड (शायद अधिक जटिल) था।

यदि यह वास्तव में मामला है datetime वस्तु प्रिंट देखने के लिए कर सकते हैं:

>>> import datetime 
>>> print datetime 
<module 'datetime' (built-in)> 
>>> print datetime.date(1, 1, 1) 
0001-01-01 
>>> datetime = datetime.datetime 
>>> print datetime 
<type 'datetime.datetime'> 
>>> print datetime.date(1, 1, 1) 

Traceback (most recent call last): 
    File "<pyshell#12>", line 1, in <module> 
    print datetime.date(1, 1, 1) 
TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int' 
7

अगर आप पहले से

from datetime import datetime 

है तो आप तो जैसे निर्माण कर सकते हैं:

christmas = datetime(2013,12,25) 
2

आप डेटाटाइम और डेटाटाइम दोनों डेटाटाइम का उपयोग कर सकते हैं। इस तरह के आयात लिखें:

from datetime import datetime 
import datetime as dt 

time_1 = datetime.strptime('17:00:00', '%H:%M:%S') 
time_1 = dt.time(time_1.hour, time_1.minute, time_1.second) 
संबंधित मुद्दे

 संबंधित मुद्दे