dateparser時間標(biāo)準(zhǔn)化包

這個文章 只是修改包的中文字典以更好地適應(yīng)中文時間表達坝橡,具體項目地址見下方:

https://github.com/scrapinghub/dateparser

我用的版本是py3.6 dateparser.version=0.71 修改教程適用py3,py2因為語法問題dateparser曾經(jīng)改版過大部分不適用,不過修改原理差不多。

安裝包

pip3 install dateparser

使用舉例

import dateparser
dateparser.parse('3天前')
#ountput > datetime.datetime(2019, 6, 15, 9, 17, 56, 264430)
dateparser.parse('2019年6月10日12時6分')
#ountput > datetime.datetime(2019, 6, 10, 12, 6)
dateparser.parse('2019-6-19 15:12:12')
#ountput > datetime.datetime(2019, 6, 19, 15, 12, 12)

適應(yīng)"秒"

默認(rèn)的中文字典沒辦法正確識別到秒位,比如:

dateparser.parse('2019年6月10日12時6分')
datetime.datetime(2019, 6, 10, 12, 6)
dateparser.parse('2019年6月10日12時6分5秒')
datetime.datetime(2019, 6, 18, 9, 39, 29, 571121)

字典里缺乏“年月日時分秒”這種表述規(guī)則,所以第二時間標(biāo)準(zhǔn)化出錯了。
解決辦法:

image.png

在源碼包里找到
datepatser->data->date_translation_data->zh.py
image.png

可以看到這里是一些映射規(guī)則封锉,在最后的"simplifications"中加一行值

{ "(\\d+)年(?:\\s+)?(\\d+)月(?:\\s+)?(\\d+)日(?:\\s+)?(\\d+)時(?:\\s+)?(\\d+)分(?:\\s+)?(\\d+)秒": "\\1-\\2-\\3 \\4:\\5:\\6" },

這一行東西前面的key是時間字符串的正則表達式,后面表示正則表達式提取出來的值的表現(xiàn)形式膘螟,這里是表示成標(biāo)準(zhǔn)的時間字符串“Y-m-d H:M:S”成福,需要增加其他規(guī)則可同理增加,修改后的上述標(biāo)準(zhǔn)化結(jié)果為:

dateparser.parse('2019年6月10日12時6分5秒')
#ountput  > datetime.datetime(2019, 6, 10, 12, 6, 5)

輔助適應(yīng)

下面是微博的一些時間字符串

time_str = ["6月17日 19:35",
            "今天 11:41",
            "12分鐘前",
            "1992年6月17日 19:35",
            "昨天 12:41",
            "現(xiàn)在"]
for t_str in time_str:
    print(dateparser.parse(t_str))
>> 2017-06-18 19:35:00 #錯
>> 2019-06-18 11:41:00 #對
>> 2019-06-18 15:19:34.231664 #對
>> 1992-06-17 19:35:00 #對
>> 2019-06-17 12:41:00 #對
>> 2019-06-18 15:31:34.239665 #對

像這種況情會發(fā)生很多荆残,每個產(chǎn)品都有自己的風(fēng)格(中文博大精深奴艾,你發(fā)現(xiàn)前面“情況”兩個字調(diào)轉(zhuǎn)了嗎,哈,調(diào)皮一下)
比較簡便的方法是使用date_formats參數(shù)

date_formats = ["%m月%d日 %H:%M","%m%d%Y"]
time_str = ["03121997",
            "6月17日 19:35",
            "今天 11:41",
            "12分鐘前",
            "1992年6月17日 19:35",
            "昨天 12:41",
            "現(xiàn)在"]
for t_str in time_str:
    print(dateparser.parse(t_str,date_formats=date_formats))
>> 1997-03-12 00:00:00
>> 2019-06-17 19:35:00
>> 2019-06-18 11:41:00
>> 2019-06-18 15:35:45.403212
>> 1992-06-17 19:35:00
>> 2019-06-17 12:41:00
>> 2019-06-18 15:47:45.421213

故意增加了一個不是很常見的時間表達内斯,舉例通過date_formats優(yōu)化時間標(biāo)準(zhǔn)結(jié)果蕴潦。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末像啼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子潭苞,更是在濱河造成了極大的恐慌忽冻,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件此疹,死亡現(xiàn)場離奇詭異僧诚,居然都是意外死亡,警方通過查閱死者的電腦和手機蝗碎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門湖笨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人衍菱,你說我怎么就攤上這事赶么〖缁恚” “怎么了脊串?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長清钥。 經(jīng)常有香客問我琼锋,道長,這世上最難降的妖魔是什么祟昭? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任缕坎,我火速辦了婚禮,結(jié)果婚禮上篡悟,老公的妹妹穿的比我還像新娘谜叹。我一直安慰自己,他們只是感情好搬葬,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布荷腊。 她就那樣靜靜地躺著,像睡著了一般急凰。 火紅的嫁衣襯著肌膚如雪女仰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天抡锈,我揣著相機與錄音疾忍,去河邊找鬼。 笑死床三,一個胖子當(dāng)著我的面吹牛一罩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播撇簿,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼聂渊,長吁一口氣:“原來是場噩夢啊……” “哼推汽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起歧沪,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤歹撒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后诊胞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體暖夭,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年撵孤,在試婚紗的時候發(fā)現(xiàn)自己被綠了迈着。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡邪码,死狀恐怖裕菠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情闭专,我是刑警寧澤奴潘,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站影钉,受9級特大地震影響画髓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜平委,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一奈虾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧廉赔,春花似錦肉微、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至岗照,卻和暖如春村象,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背攒至。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工厚者, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人迫吐。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓库菲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親志膀。 傳聞我的和親對象是個殘疾皇子熙宇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • SwiftDate概況 從Swift發(fā)布起鳖擒,我們就沒有放棄使用Swift。 當(dāng)然烫止,我們希望在項目能夠輕松自如地管理...
    Mee_Leo閱讀 9,982評論 1 13
  • 幾個正則表達式編輯器 Debuggex :https://www.debuggex.com/ PyRegex:ht...
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時蒋荚,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,176評論 0 9
  • 常用模塊 認(rèn)識模塊 什么是模塊 什么是模塊? 常見的場景:一個模塊就是一個包含了python定義和聲明的文件互躬,文...
    go以恒閱讀 1,938評論 0 6
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,212評論 0 4