亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python:轉換 2 位/4 位年份

Python:轉換 2 位/4 位年份

catspeake 2021-10-19 16:43:08
我正在嘗試使用以下代碼將 Python 中的日期格式“31-Dec-09”轉換為“2009-12-31”:df = ['19-Jan-19', '4-Jan-19']   f = [datetime.datetime.strptime(x,'%d-%mmm-%y').strftime('%Y-%m-%d') for x in df]print(f)得到以下錯誤:time data '9-Jan-19' does not match format '%d-%mmm-%y'我在某處讀到匹配兩位數的年份“00”需要小寫的 y 而不是大寫的 y。無論哪種方式,我都遇到了同樣的錯誤,所以我想還有其他問題。有什么幫助嗎?
查看完整描述

2 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

您的%y和%Y模式很好,問題是您%mmm在這里使用了。該datetime.strptime()方法的模式都是單字母圖案,并且%mmm作為被視為%m圖案后跟兩個文字m字符。%m匹配數字月份(1 或 2 位數字,零填充可選)。所以19-1mm-19會匹配,但19-Jan-19不會因為月份不是數字并且m缺少兩個文字字符。


要使用的正確模式在'%d-%b-%y'這里,其中%b匹配縮寫的月份名稱。


演示:


>>> import datetime

>>> df = ['19-Jan-19', '4-Jan-19']

>>> [datetime.datetime.strptime(x,'%d-%b-%y').strftime('%Y-%m-%d') for x in df]

['2019-01-19', '2019-01-04']


查看完整回答
反對 回復 2021-10-19
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

由于您使用速記表示法指定月份,因此您應該使用 %b 而不是 %mmm (這不是日期時間中的有效格式)


查看完整回答
反對 回復 2021-10-19
  • 2 回答
  • 0 關注
  • 329 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號