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

标签 python date pandas arrow-python

我正在寻找转换字符串 "september 20 2010"到 python datetime.date 对象使用 arrow

我已经编写了函数来替换部分文本,最终得到了 9/20/2016 但我想要 YYYY-MM-DD 格式,但似乎无法获取arrow识别我的字符串并将其转换为 python datetime.date对象(没有任何时间)。

什么有效,什么无效。

arrow.get('september 20 2010', '%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 日星期一

最佳答案

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

arrow.get('2010 年 9 月 20 日', 'MMMM D YYYY')

注意:在这种情况下,只有一个D,因为它用一位或两位数字覆盖数字1、2、3... 29, 30DD 仅用两位数字覆盖号码 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

关于python - 使用箭头日期操作Python库以字符串形式解析日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40260828/

相关文章:

python - Odoo 10 如何将字段数据从 sale.order 传递到 stock.picking

python - 我有一个 CSV 文件,其中 A 列中的某些行是重复的,但我需要合并 B 列的内容

python - 从unix时间字符串转换为python日期类型,当CDT存在时不转换

php - 在 PHP 中将日期格式 m.Y 转换为 MySQL 兼容的 Y-m-d

python - 使用 Python 从具有空白字段的文件中删除行

python - 如何从管道内的 sklearn TFIDF Vectorizer 返回数据帧?

python - MySQL+Python 索引超出范围错误

python - 在 numba 函数中使用 np.min 和列表输入

django - 将Django DateField格式化为ISO格式

python - 旋转具有重复值的数据框