繁体   English   中英

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

[英]parsing dates in the form of strings using arrow date manipulating python library

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

我已经编写了函数来替换部分文本并最终得到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"ParserError: Failed to match '%B %(?P<d>[1-7]) %Y'

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

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

使用arrow ,您必须匹配字符串的确切语法,这是相关标记的列表。

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是一个Arrow对象,你可以用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM