[英]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.