2016-12-02 37 views
0

我正在24小時存在的系統中工作。我有大量的日期時間。Python正常化日期時間

因此,如果我能有時間爲:

t1 = datetime.datetime(2012, 1, 25, 0, 0) 

它代表'2012-01-24 24:00'.

我想正常化T1,並獲得:

normalized_t1 = '2012-01-24' 

目前,如果我正常化T1爲:

pd.DatetimeIndex([t1, t1]).normalize() 

我得到:

DatetimeIndex(['2012-01-25', '2012-01-25'], dtype='datetime64[ns]', freq=None) 

有沒有辦法在Python化的方式來實現這一目標,而不是使用if語句等

+1

因此,你的一天從01:00開始到24:59結束? – kennytm

回答

2

只需減去一小時,以使日期符合您的要求。

>>> t1 = datetime.datetime(2012, 1, 25, 0, 0) 
>>> t1.strftime('%Y-%m-%d') 
'2012-01-25' 
>>> t1 -= datetime.timedelta(hours=1) 
>>> t1.strftime('%Y-%m-%d') 
'2012-01-24' 
1

This is what I found

import datetime 

t1 = datetime.datetime(2012, 1, 25, 0, 0) 
print "{}-{}-{}".format(t1.year, t1.month, t1.day) 

輸出

2012-1-25 
2

使用strftime方法的日期時間對象將會是,

import datetime 

fmt = '%Y-%m-%d' 
t1 = datetime.datetime(2012, 1, 25, 0, 0) 
print t1.strftime(fmt)