我试图将我的日期字符串转换为ISO格式,但它无法正常工作。有关使用datetime
,time
或pandas
有效执行此操作的任何建议?
date = "2/3/13"
import datetime
t = datetime.date(*map(int,date.split("/")))
format = "'%Y-%m-%d'"
t.strftime(format)
# "'0002-03-13'"
答案 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)
在处理日期/时间时,我爱我一些图书馆。 dateparser,parsedatetime和arrow都是非常好的选择
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
干杯