簡體   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