使用箭头日期操作python库以字符串的形式解析日期

时间:2016-10-26 11:14:00

标签: python date pandas arrow-python

我希望使用datetime.date将字符串"september 20 2010"转换为python arrow对象。

我已经编写了函数来替换文本的部分内容并最终使用 9/20/2016 ,但我想要 YYYY-MM-DD 格式并且看起来不行让arrow识别我的字符串并将其转换为python datetime.date对象(没有任何时间)。

什么有效,什么没有。

  

arrow.get('2010年9月20日','%B%d%Y')

这对我不起作用我在解析字符串ParserError: Failed to match '%B %(?P<d>[1-7]) %Y'

时收到错误:"september 20 2010"

但是,当我操纵字符串然后使用arrow.Arrow(y,m,d).date()时,结果是datetime.date(2016, 9, 20)个对象。

我无法使用.format('dddd-DD-MMMM-YYYY')将其转换为任何其他格式,该格式将返回 2010年9月20日星期一

1 个答案:

答案 0 :(得分:0)

使用arrow,您必须匹配字符串的确切语法,这里是associated token的列表。

arrow.get('September 20 2010', 'MMMM D YYYY')

注意:在这种情况下,只有一个D因为它覆盖了一个或两个数字的数字 1,2,3 ... 29,30 虽然DD覆盖了两位数 01,02,03 ... 29,30

获得箭头对象后,您可以使用format()显示它:

ar = arrow.get('September 20 2010', 'MMMM D YYYY')
print(ar.format('YYYY-MM-DD')) # 2010-09-20

修改

要回答您的评论,ar是一个箭头对象,您可以使用dir检查其中包含的每个方法

Arrow有一个方法date(),它返回一个datetime.date对象。

现在,如果您想使用pandas,那很简单:

import array
import pandas as pd

ar = arrow.get('September 20 2010', 'MMMM D YYYY')
df = pd.to_datetime(ar.date())
print(df) # 2010-09-20 00:00:00