Python将日期格式从2/3/13转换为2013-02-03?

时间:2017-11-28 21:44:11

标签: python pandas date datetime time

我试图将我的日期字符串转换为ISO格式,但它无法正常工作。有关使用datetimetimepandas有效执行此操作的任何建议?

date = "2/3/13"
import datetime
t = datetime.date(*map(int,date.split("/")))
format = "'%Y-%m-%d'"
t.strftime(format)
# "'0002-03-13'"

2 个答案:

答案 0 :(得分:4)

使用pandas -

pd.to_datetime("2/3/13")
Timestamp('2013-02-03 00:00:00')

使用pandas,您可以(大部分时间)推断格式,而无需手动指定。但是,导入如此繁重的模块以仅将其用于简单的日期时间转换似乎毫无意义。

因此,使用strptime这是一种同样简单的python方式 -

from datetime import datetime as dt

dt.strptime("2/3/13", '%d/%m/%y')
datetime.datetime(2013, 3, 2, 0, 0)

或者,更简单(您不必传递格式字符串),使用dateutil -

from dateutil import parser

parser.parse('2/3/13/').date()
datetime.date(2013, 2, 3)

pandas实际上使用了引擎盖下的dateutil库(– unutbu)。如果您的日期字符串结构一致,我建议您使用其中之一。

答案 1 :(得分:0)

在处理日期/时间时,我爱我一些图书馆。 dateparserparsedatetimearrow都是非常好的选择

import dateparser as dp

print(dp.parse("2/13/13"))
2013-02-13 00:00:00

print(dp.parse("2/13/13").date())
2013-02-13

print(dp.parse("Yesterday at 2am PST"))
2017-11-27 13:56:59.290385-08:00

干杯