Peter
Peter

Reputation: 1128

Python Datetime and date types

Slightly different question from this one. Are datetime.date objects a subset of datetime.datetime objects? Are there instances when a variable may be both a datetime.date type AND a datetime.datetime object?

Below, I make a datetime.datetime object that also seems to validate as a datetime.date object. Thoughts?

In [1]: import datetime

In [2]: x = datetime.datetime(2013, 7, 13, 13, 0)

In [3]: isinstance(x, datetime.date)
Out[3]: True

In [4]: isinstance(x, datetime.datetime)
Out[4]: True

Upvotes: 0

Views: 630

Answers (1)

zhangyangyu
zhangyangyu

Reputation: 8610

Actually datetime.datetime is a subclass of datetime.date.

>>> issubclass(datetime.datetime, datetime.date)
True

So for an instance of datetime.datetime, isinstance(instance, datetime.date) will return True. But it returns False if the two reverse.

>>> date = datetime.date(2011, 1, 1)
>>> isinstance(date, datetime.datetime)
False
>>> 

Upvotes: 5

Related Questions