1. ホーム
  2. python

[解決済み] Python: オブジェクトが datetime.date 型であるかどうかを確認するにはどうすればよいですか?

2023-04-16 04:28:57

質問

いくつかの明らかなオプションを試しましたが、どれもうまくいきません。

In [150]: x
Out[150]: datetime.date(2012, 9, 1)

In [151]: type(x)
Out[151]: datetime.date

In [152]: isinstance(x, datetime.date)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-152-9a298ea6fce5> in <module>()
----> 1 isinstance(x, datetime.date)

TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types

In [153]: x is datetime.date
Out[153]: False

In [154]: type(x) is datetime.date
Out[154]: False

正しい方法は何でしょうか?

どのように解決するのですか?

この例で動作しない理由は、インポートした datetime をこのようにインポートしているからだと思います。

from datetime import datetime

というエラーになります。

In [30]: isinstance(x, datetime.date)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/<ipython-input-30-9a298ea6fce5> in <module>()
----> 1 isinstance(x, datetime.date)

TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types

というようにインポートすれば

import datetime

を実行すると、他のすべての回答で示されたように、コードが実行されます。

In [31]: import datetime

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

In [33]: