最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python非標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換

 更新時(shí)間:2021年07月25日 10:02:30   作者:black manba  
本文主要介紹了python非標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

可匹配結(jié)構(gòu):

今天~前天, 幾天前, 分鐘秒前等 | 2017-1-4 12:10 | 2017/1/4 12:10 | 2018年4月2日 12:12 | 2018年4月2日 | 2017-1-4 | 2017/1/4 | 1/4 |

# -*- coding:utf-8 -*-
from datetime import datetime, timedelta
import re
import time


def tz_offset(tz):
    res = (re.search(r'(?P<F>[-+])(?P<H>\d{2}):?(?P<M>\d{2})', tz) or re.search('', '')).groupdict()
    offset = (1 if res.get('F', '+')=='+' else -1) * timedelta(
                        hours   = int(res.get('H', 0)),
                        minutes = int(res.get('M', 0)))
    return offset


def parse_date(data, fmt, tz):
    """
        時(shí)間匹配模塊,可轉(zhuǎn)化為固定格式
        返回時(shí)間字符串 0000-00-00 00:00:00
        可匹配結(jié)構(gòu) |今天~前天, 幾天前,分鐘秒前等 | 2017-1-4 12:10 | 2017/1/4 12:10 | 2018年4月2日 12:12
                        | 2018年4月2日 | 2017-1-4 | 2017/1/4 | 1/4 |
    """
    offset = tz_offset(tz)
    if fmt == 'auto':
        now = (datetime.utcnow() + timedelta(hours=8)).replace(microsecond=0) + offset
        now_1 = now - timedelta(days=1)
        now_2 = now - timedelta(days=2)

        # 幾/剛/今天/昨天/前天
        x = data.strip()
        x = x.replace(u'幾', ' 0 ')
        x = x.replace(u'剛[剛才]', now.strftime(' %Y-%m-%d %H:%M:%S '))
        x = x.replace(u'今天', now.strftime(' %Y-%m-%d '))
        x = x.replace(u'昨天', now_1.strftime(' %Y-%m-%d '))
        x = x.replace(u'前天', now_2.strftime(' %Y-%m-%d '))
        x = re.sub(r'[年月]', '/', x)
        x = re.sub(r'[日]', ' ', x)
        x = re.sub(r'\s{2,}', r' ', x)

        # XX前
        res = (re.search(r'(?P<S>\d+)\s*秒鐘?前', x) \
               or re.search(r'(?P<M>\d+)\s*分鐘前', x) \
               or re.search(r'(?P<H>\d+)\s*小時(shí)前', x) \
               or re.search(r'(?P<d>\d+)\s*天前', x) \
               or re.search('', '')).groupdict()
        if res:
            dt = now - timedelta(
                days=int(res.get('d', 0)),
                hours=int(res.get('H', 0)),
                minutes=int(res.get('M', 0)),
                seconds=int(res.get('S', 0))
            )
        # 不是幾天前分鐘前的形式
        else:
            # XX-XX-XX XX:XX:XX
            res = (re.search(r'(?P<Y>\d+)[/-](?P<m>\d+)[/-](?P<d>\d+)(\s+(?P<H>\d{1,2}):(?P<M>\d{2})(:(?P<S>\d{2}))?)?',
                             x) or re.search('', '')).groupdict()
            if res == dict():
                # 匹配沒(méi)有年份的時(shí)候,格式 XX-XX XX:XX:XX  月-日 時(shí):分:秒 或 17年10月10日 時(shí):分:秒
                res = (re.search(
                    r'(?P<m>\d{1,2})[/-](?P<d>\d+)(\s+(?P<H>\d{2}):(?P<M>\d{2})(:(?P<S>\d{2}))?)?',
                    x) or re.search('', '')).groupdict()
            if res:
                Y = res.get('Y', now.year)
                Y = "20" + Y if len(str(Y)) == 2 else Y
                m = res.get('m', now.month)
                d = res.get('d', now.day)
                H = res.get('H', now.hour)
                M = res.get('M', now.minute)
                S = res.get('S', 0)
                dt = datetime(
                    year=int(Y) if Y != None and 1987 <= int(Y) <= now.year else now.year,
                    month=int(m) if m != None else now.month,
                    day=int(d) if d != None else now.day,
                    # 如果沒(méi)有時(shí)分秒,則被認(rèn)定為00:00:00
                    hour=int(H) if H != None else 0,
                    minute=int(M) if M != None else 0,
                    second=int(S) if S != None else 0
                )
            else:
                # 1970-01-01 00:00:00
                # dt = datetime.utcfromtimestamp(0)+offset
                return ""
        # 時(shí)間可能超過(guò)當(dāng)前時(shí)間,若超過(guò)則減去一年
        if int(time.mktime((dt - offset).timetuple())) > int(time.time()):
            # 時(shí)間超過(guò)當(dāng)前時(shí)間,減去一年
            delta = timedelta(days=-365)
            real_time = (dt - offset) + delta
            real_time = real_time.strftime("%Y-%m-%d %H:%M:%S")
        else:
            real_time = (dt - offset).strftime("%Y-%m-%d %H:%M:%S")
        return real_time


if __name__ == '__main__':
    print(parse_date('2秒前', 'auto', ''))
    print(parse_date('2分鐘前', 'auto', ''))
    print(parse_date('2小時(shí)前', 'auto', ''))
    print(parse_date('昨天 00:30', 'auto', ''))
    print(parse_date('07-20', 'auto', ''))

到此這篇關(guān)于python非標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)python非標(biāo)準(zhǔn)時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Python3編寫一個(gè)GUI翻譯器

    基于Python3編寫一個(gè)GUI翻譯器

    PySimpleGUI就是GUI工具包,用于創(chuàng)建GUI的。本文將利用PySimpleGUI編寫一個(gè)GUI翻譯器,感興趣的小伙伴可以跟隨小編一起動(dòng)手嘗試一下
    2022-08-08
  • python讀取多類型文件夾中的文檔內(nèi)容

    python讀取多類型文件夾中的文檔內(nèi)容

    無(wú)論我們使用哪種編程語(yǔ)言,處理文件對(duì)于每個(gè)程序員都是必不可少的,本文主要介紹了python讀取多類型文件夾中的文檔內(nèi)容,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 使用Python構(gòu)建Hopfield網(wǎng)絡(luò)的教程

    使用Python構(gòu)建Hopfield網(wǎng)絡(luò)的教程

    這篇文章主要介紹了使用Python構(gòu)建Hopfield網(wǎng)絡(luò)的教程,本文來(lái)自于IBM官方網(wǎng)站的技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • django authenticate用戶身份認(rèn)證的項(xiàng)目實(shí)踐

    django authenticate用戶身份認(rèn)證的項(xiàng)目實(shí)踐

    Django的contrib.auth模塊中的authenticate()函數(shù)用于對(duì)用戶的憑據(jù)進(jìn)行身份驗(yàn)證,本文就來(lái)介紹一下django authenticate用戶身份認(rèn)證的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • python讀取eml文件并用正則表達(dá)式匹配郵箱的代碼

    python讀取eml文件并用正則表達(dá)式匹配郵箱的代碼

    今天接到一個(gè)需求有一個(gè)同事離職了,但是留下了非常多的郵件,我需要將他的郵件進(jìn)行分類,只要郵件中以@xxx.com結(jié)尾的存放在文件夾中,否則放在另一個(gè)文件夾中,這篇文章主要介紹了python讀取eml文件并用正則匹配郵箱,需要的朋友可以參考下
    2022-11-11
  • Python爬蟲之模擬知乎登錄的方法教程

    Python爬蟲之模擬知乎登錄的方法教程

    在爬蟲過(guò)程中,有些頁(yè)面在登錄之前是被禁止抓取的,這個(gè)時(shí)候就需要模擬登陸了,下面這篇文章主要給大家介紹了利用Python爬蟲模擬知乎登錄的方法教程,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-05-05
  • python 3利用Dlib 19.7實(shí)現(xiàn)攝像頭人臉檢測(cè)特征點(diǎn)標(biāo)定

    python 3利用Dlib 19.7實(shí)現(xiàn)攝像頭人臉檢測(cè)特征點(diǎn)標(biāo)定

    這篇文章主要為大家詳細(xì)介紹了python 3利用Dlib 19.7實(shí)現(xiàn)攝像頭人臉檢測(cè)特征點(diǎn)標(biāo)定,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python連接到PostgreSQL數(shù)據(jù)庫(kù)的方法詳解

    Python連接到PostgreSQL數(shù)據(jù)庫(kù)的方法詳解

    顧名思義,PostgreSQL?是一款為高效管理數(shù)據(jù)庫(kù)系統(tǒng)而創(chuàng)建的?SQL?系統(tǒng)軟件,這篇文章主要為大家詳細(xì)介紹了創(chuàng)建與?PostgreSQL?上的數(shù)據(jù)庫(kù)的連接的過(guò)程,需要的小伙伴可以了解下
    2023-10-10
  • Tensorflow中tf.ConfigProto()的用法詳解

    Tensorflow中tf.ConfigProto()的用法詳解

    今天小編就為大家分享一篇Tensorflow中tf.ConfigProto()的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • 基于tensorflow加載部分層的方法

    基于tensorflow加載部分層的方法

    今天小編就為大家分享一篇基于tensorflow加載部分層的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07

最新評(píng)論

凉山| 汤阴县| 池州市| 右玉县| 贺州市| 扎赉特旗| 闵行区| 犍为县| 广平县| 莱州市| 南郑县| 临海市| 兴山县| 哈密市| 准格尔旗| 邵阳市| 巴青县| 平凉市| 高阳县| 江阴市| 林口县| 合阳县| 斗六市| 财经| 扎兰屯市| 芮城县| 吉林省| 调兵山市| 印江| 万宁市| 新化县| 汉川市| 安远县| 桐城市| 陈巴尔虎旗| 于都县| 嘉善县| 克拉玛依市| 新竹县| 台江县| 金寨县|