Python规范化日期时间

时间:2016-12-02 03:49:37

标签: python datetime

我在24小时存在的系统中工作。我有很多日期时间。

因此,如果我有时间:

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)

有没有办法以pythonic方式实现这一点,而不是使用if语句等。

3 个答案:

答案 0 :(得分:2)

Using strftime method of date time object will be,

import datetime

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

答案 1 :(得分: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'

答案 2 :(得分: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