type object 'datetime.datetime' has no attribute 'datetime'
Question:
I have gotten the following error:
type object ‘datetime.datetime’ has no attribute ‘datetime’
On the following line:
date = datetime.datetime(int(year), int(month), 1)
Does anybody know the reason for the error?
I imported datetime with from datetime import datetime
if that helps
Thanks
Answers:
Datetime is a module that allows for handling of dates, times and datetimes (all of which are datatypes). This means that datetime
is both a top-level module as well as being a type within that module. This is confusing.
Your error is probably based on the confusing naming of the module, and what either you or a module you’re using has already imported.
>>> import datetime
>>> datetime
<module 'datetime' from '/usr/lib/python2.6/lib-dynload/datetime.so'>
>>> datetime.datetime(2001,5,1)
datetime.datetime(2001, 5, 1, 0, 0)
But, if you import datetime.datetime:
>>> from datetime import datetime
>>> datetime
<type 'datetime.datetime'>
>>> datetime.datetime(2001,5,1) # You shouldn't expect this to work
# as you imported the type, not the module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
>>> datetime(2001,5,1)
datetime.datetime(2001, 5, 1, 0, 0)
I suspect you or one of the modules you’re using has imported like this:
from datetime import datetime
.
You should use
date = datetime(int(year), int(month), 1)
Or change
from datetime import datetime
to
import datetime
For python 3.3
from datetime import datetime, timedelta
futuredate = datetime.now() + timedelta(days=10)
If you have used:
from datetime import datetime
Then simply write the code as:
date = datetime(int(year), int(month), 1)
But if you have used:
import datetime
then only you can write:
date = datetime.datetime(int(2005), int(5), 1)
You should really import the module into its own alias.
import datetime as dt
my_datetime = dt.datetime(year, month, day)
The above has the following benefits over the other solutions:
- Calling the variable
my_datetime
instead of date
reduces confusion since there is already a date
in the datetime module (datetime.date
).
- The module and the class (both called
datetime
) do not shadow each other.
I found this to be a lot easier
from dateutil import relativedelta
relativedelta.relativedelta(end_time,start_time).seconds
from datetime import datetime
import time
from calendar import timegm
d = datetime.utcnow()
d = d.strftime("%Y-%m-%dT%H:%M:%S.%fZ")
utc_time = time.strptime(d,"%Y-%m-%dT%H:%M:%S.%fZ")
epoch_time = timegm(utc_time)
I run into the same error maybe you have already imported the module by using only import datetime
so change from datetime import datetime
to only import datetime
. It worked for me after I changed it back.
import time
import datetime
from datetime import date,timedelta
You must have imported datetime
from datetime
.
Avoid to write:
from datetime import datetime
datetime.datetime.function()
Solution No. 1:
import datetime
datetime.datetime.function()
Solution No. 2:
from datetime import datetime
datetime.function()
The Problem Is That You Are Using The Tag
from datetime
I had The Same Problem You Need To use It Like This Instead
import datetime
delete one datetime from:
date = datetime.datetime(int(year), int(month), 1)
and you get this:
date = datetime(int(year), int(month), 1)
you already imported the first one with this:
from datetime import datetime
so its redundant.
You can simply run the below command.
import datetime
datetime.fromtimestamp(details.start_date).strftime("%Y-%m-%d %H:%M:%S")
I have gotten the following error:
type object ‘datetime.datetime’ has no attribute ‘datetime’
On the following line:
date = datetime.datetime(int(year), int(month), 1)
Does anybody know the reason for the error?
I imported datetime with from datetime import datetime
if that helps
Thanks
Datetime is a module that allows for handling of dates, times and datetimes (all of which are datatypes). This means that datetime
is both a top-level module as well as being a type within that module. This is confusing.
Your error is probably based on the confusing naming of the module, and what either you or a module you’re using has already imported.
>>> import datetime
>>> datetime
<module 'datetime' from '/usr/lib/python2.6/lib-dynload/datetime.so'>
>>> datetime.datetime(2001,5,1)
datetime.datetime(2001, 5, 1, 0, 0)
But, if you import datetime.datetime:
>>> from datetime import datetime
>>> datetime
<type 'datetime.datetime'>
>>> datetime.datetime(2001,5,1) # You shouldn't expect this to work
# as you imported the type, not the module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
>>> datetime(2001,5,1)
datetime.datetime(2001, 5, 1, 0, 0)
I suspect you or one of the modules you’re using has imported like this:
from datetime import datetime
.
You should use
date = datetime(int(year), int(month), 1)
Or change
from datetime import datetime
to
import datetime
For python 3.3
from datetime import datetime, timedelta
futuredate = datetime.now() + timedelta(days=10)
If you have used:
from datetime import datetime
Then simply write the code as:
date = datetime(int(year), int(month), 1)
But if you have used:
import datetime
then only you can write:
date = datetime.datetime(int(2005), int(5), 1)
You should really import the module into its own alias.
import datetime as dt
my_datetime = dt.datetime(year, month, day)
The above has the following benefits over the other solutions:
- Calling the variable
my_datetime
instead ofdate
reduces confusion since there is already adate
in the datetime module (datetime.date
). - The module and the class (both called
datetime
) do not shadow each other.
I found this to be a lot easier
from dateutil import relativedelta
relativedelta.relativedelta(end_time,start_time).seconds
from datetime import datetime
import time
from calendar import timegm
d = datetime.utcnow()
d = d.strftime("%Y-%m-%dT%H:%M:%S.%fZ")
utc_time = time.strptime(d,"%Y-%m-%dT%H:%M:%S.%fZ")
epoch_time = timegm(utc_time)
I run into the same error maybe you have already imported the module by using only import datetime
so change from datetime import datetime
to only import datetime
. It worked for me after I changed it back.
import time
import datetime
from datetime import date,timedelta
You must have imported datetime
from datetime
.
Avoid to write:
from datetime import datetime
datetime.datetime.function()
Solution No. 1:
import datetime
datetime.datetime.function()
Solution No. 2:
from datetime import datetime
datetime.function()
The Problem Is That You Are Using The Tag
from datetime
I had The Same Problem You Need To use It Like This Instead
import datetime
delete one datetime from:
date = datetime.datetime(int(year), int(month), 1)
and you get this:
date = datetime(int(year), int(month), 1)
you already imported the first one with this:
from datetime import datetime
so its redundant.
You can simply run the below command.
import datetime
datetime.fromtimestamp(details.start_date).strftime("%Y-%m-%d %H:%M:%S")