2017-04-07 79 views
0

我有一個函數可以接受日期或日期時間作爲其參數之一。如果該值是日期時間,我想將其轉換爲date組件。這樣做的pythonic方式是什麼?有沒有辦法將可以是日期時間或日期的變量轉換爲日期?

+1

'如果isinstance(param_date,datetime.datetime):param_date = paramdate.date()' – TemporalWolf

+0

使用'.date()'方法...? – Dadep

+0

@Dadep,日期對象不存在'.date()'方法。我已經嘗試過了。 – Bobort

回答

3

由於datetime對象date對象,你應該能夠呼籲datetime任何date功能和它的工作。

但是如果你必須:

if isinstance(param_date, datetime.datetime): 
    param_date = param_date.date() 

將normallize任何datetimedate對象date對象...現在你只需要對付他們,因爲date對象不是datetime對象:

>>> isinstance(datetime.date.today(), datetime.datetime) 
False 

備註:反向不適用:

>>> isinstance(datetime.datetime.now(), datetime.date) 
True 

as datetime繼承自date

0

您可以先檢查它是否爲datetime.datetime,然後繼續使用datetime.datetime.date()將其轉換爲date組件。

在代碼中的一個例子如下。

導入datetime模塊,並將變量d設置爲當前的datetime

>>> import datetime 
>>> d = datetime.datetime.now() 
>>> d 
datetime.datetime(2017, 4, 7, 22, 10, 51, 89213) 

然後檢查是否ddatetime對象,並且如果將其設置爲它的date對應物。

>>> if type(d) is datetime.datetime: 
>>>  d = d.date() 
>>> d 
datetime.date(2017, 4, 7) 
相關問題