Python深入解析優(yōu)秀的時(shí)間格式轉(zhuǎn)換工具Delorean

      網(wǎng)友投稿 878 2022-05-28

      一、前言

      DeLorean 是一個(gè) Python 的第三方模塊,基于 pytz 和 dateutil 開(kāi)發(fā)的,用于處理 Python 中日期時(shí)間的格式轉(zhuǎn)換。

      Python之深入解析優(yōu)秀的時(shí)間格式轉(zhuǎn)換工具Delorean

      由于時(shí)間轉(zhuǎn)換是一個(gè)足夠微妙的問(wèn)題,DeLorean 希望為移位、操作和生成日期時(shí)間提供一種更干凈、更省事的解決方案。比如,實(shí)例化字符串形式的時(shí)間對(duì)象,Delorean 只需要 parse 指定字符串,不需要聲明其格式就可以進(jìn)行轉(zhuǎn)換。

      二、準(zhǔn)備

      ① Python 安裝

      在 windows 上安裝 Python:

      下載 Python 的最新版本:訪問(wèn)鏈接 Python 官網(wǎng),在 Windows 操作系統(tǒng)上安裝 Python 3.10.0,大家也可以自行選擇最新版的下載。

      進(jìn)入下一個(gè)頁(yè)面后,拉到最下面,選擇 Windows embeddable package (64-bit) 下載:

      雙擊下載完成的應(yīng)用程序,記得一定要勾選 ADD Python 3.7 to PATH,否則 cmd 無(wú)法運(yùn)行 Python,然后選擇 Install Now 進(jìn)行安裝,默認(rèn)會(huì)安裝 pip,而且將安裝到 C 盤(pán)(推薦)。如果希望換一個(gè)盤(pán)安裝,可以點(diǎn)擊 Customize installation 在里面選擇其他的盤(pán)。

      在 macOS 上安裝 Python:

      其實(shí) macOS 上是默認(rèn)安裝了 Python 的,只不過(guò)版本是 Python2.7,其相對(duì)于現(xiàn)在的 Python 3 缺少了很多特性,而且速度也比 Python 3 慢,因此還是建議大家裝 Python 3。

      同樣地,下載 Python 的最新版本,訪問(wèn)鏈接:Python 官網(wǎng),在 macOS 操作系統(tǒng)上安裝 Python 3.7.4,大家也可以自行選擇最新版的下載。

      進(jìn)入下一個(gè)頁(yè)面后,拉到最下面,選擇 macOS 64-bit universal2 installer 下載:

      下載完成后得到一個(gè) pkg 文件,雙擊打開(kāi),按照指示步驟進(jìn)行安裝即可。

      ② 安裝依賴

      請(qǐng)選擇以下任一種方式輸入命令安裝依賴:

      Windows 環(huán)境打開(kāi) Cmd (開(kāi)始 - 運(yùn)行 - CMD);

      MacOS 環(huán)境打開(kāi) Terminal (command + 空格輸入 Terminal);

      如果使用的是 VSCode 編輯器或 Pycharm,可以直接使用界面下方的 Terminal。

      pip install Delorean

      1

      三、Delorean 基礎(chǔ)使用

      輕松獲取當(dāng)前時(shí)間:

      from delorean import Delorean d = Delorean() print(d) # Delorean(datetime=datetime.datetime(2021, 10, 6, 9, 5, 57, 611589), timezone='UTC')

      1

      2

      3

      4

      5

      將 datetime 格式的時(shí)間轉(zhuǎn)化為 Delorean:

      import datetime from delorean import Delorean d = Delorean() print(d) d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC') # 這里默認(rèn)的是UTC時(shí)間 print(d) # Delorean(datetime=datetime.datetime(2021, 10, 6, 9, 5, 57, 611589), timezone='UTC') # Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      轉(zhuǎn)換為國(guó)內(nèi)時(shí)區(qū):

      import datetime from delorean import Delorean d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC') d = d.shift("Asia/Shanghai") print(d) # Delorean(datetime=datetime.datetime(2018, 5, 10, 16, 52, 23, 560811), timezone='Asia/Shanghai')

      1

      2

      3

      4

      5

      6

      7

      輸出為 datetime、date 也不在話下:

      import datetime from delorean import Delorean d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC') d = d.shift("Asia/Shanghai") print(d.datetime) print(d.date) # 2018-05-10 16:52:23.560811+08:00 # 2018-05-10

      1

      2

      3

      4

      5

      6

      7

      8

      9

      查看無(wú)時(shí)區(qū)時(shí)間及時(shí)間戳:

      import datetime from delorean import Delorean d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC') d = d.shift("Asia/Shanghai") print(d.epoch) print(d.naive) # 1525942343.560811 # 2018-05-10 08:52:23.560811

      1

      2

      3

      4

      5

      6

      7

      8

      9

      用 unix 時(shí)間戳初始化 Delorean:

      from delorean import epoch d = epoch(1357971038.102223).shift("Asia/Shanghai") print(d) # Delorean(datetime=datetime.datetime(2013, 1, 12, 14, 10, 38, 102223), timezone='Asia/Shanghai')

      1

      2

      3

      4

      Delorean 支持 timedelta 的時(shí)間加減法。Delorean 可以使用 timedelta 進(jìn)行加減,得到一個(gè) Delorean 對(duì)象:

      import datetime from delorean import Delorean d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC') d = d.shift("Asia/Shanghai") print(d) d2 = d + datetime.timedelta(hours=2) print(d2) d3 = d - datetime.timedelta(hours=3) print(d3) # Delorean(datetime=datetime.datetime(2018, 5, 10, 16, 52, 23, 560811), timezone='Asia/Shanghai') # Delorean(datetime=datetime.datetime(2018, 5, 10, 18, 52, 23, 560811), timezone='Asia/Shanghai') # Delorean(datetime=datetime.datetime(2018, 5, 10, 13, 52, 23, 560811), timezone='Asia/Shanghai')

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      四、Delorean 高級(jí)使用

      通常情況下不關(guān)心有多少微妙或者多少秒,因此 Delorean 提供了非常方便的過(guò)濾方式:

      from delorean import Delorean d = Delorean() print(d) # Delorean(datetime=datetime.datetime(2019, 3, 14, 4, 0, 50, 597357), timezone='UTC') d.truncate('second') # Delorean(datetime=datetime.datetime(2019, 3, 14, 4, 0, 50), timezone='UTC') d.truncate('hour') # Delorean(datetime=datetime.datetime(2019, 3, 14, 4, 0), timezone='UTC') d.truncate('month') # Delorean(datetime=datetime.datetime(2019, 3, 1, 0, 0), timezone='UTC') d.truncate('year') # Delorean(datetime=datetime.datetime(2019, 1, 1, 0, 0), timezone='UTC')

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      另外,datetime 格式的字符串處理的時(shí)候轉(zhuǎn)換需要標(biāo)明各種各樣的格式,在 Delorean 直接 parse 就可以了:

      from delorean import parse parse("2011/01/01 00:00:00 -0700") # Delorean(datetime=datetime.datetime(2011, 1, 1, 0, 0), timezone=pytz.FixedOffset(-420)) parse("2018-05-06") # Delorean(datetime=datetime.datetime(2018, 6, 5, 0, 0), timezone='UTC')

      1

      2

      3

      4

      5

      Python Windows

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:云時(shí)代IT從業(yè)者何去何從
      下一篇:最適合初學(xué)者學(xué)習(xí)的操作系統(tǒng)書(shū),沒(méi)有理由不拿來(lái)讀一讀
      相關(guān)文章
      亚洲 暴爽 AV人人爽日日碰| 亚洲人成网站在线播放2019| 亚洲一级黄色大片| 久久精品亚洲视频| 国产亚洲成AV人片在线观黄桃| 亚洲国产精品激情在线观看| 色窝窝亚洲av网| 亚洲αⅴ无码乱码在线观看性色| 最新亚洲卡一卡二卡三新区| 亚洲制服丝袜第一页| 亚洲1区1区3区4区产品乱码芒果 | 亚洲国产精品无码观看久久| 国产精品亚洲专区在线观看| 国产成人精品日本亚洲专| 亚洲一欧洲中文字幕在线| 亚洲一区中文字幕在线观看| 亚洲一卡二卡三卡| 天堂亚洲国产中文在线| 亚洲一区二区久久| 亚洲永久在线观看| 亚洲欧美综合精品成人导航| 亚洲精品无码永久在线观看男男| 国产亚洲sss在线播放| 亚洲综合激情五月色一区| 亚洲综合成人婷婷五月网址| 亚洲真人无码永久在线观看| 亚洲欧美成人av在线观看| 亚洲aⅴ无码专区在线观看| 少妇亚洲免费精品| 中文字幕亚洲一区二区三区| 国产专区一va亚洲v天堂| 亚洲日产无码中文字幕| 亚洲人成网站影音先锋播放| 亚洲视频一区在线播放| 亚洲一级毛片免费观看| 亚洲乱码无人区卡1卡2卡3| 国产成人不卡亚洲精品91| 亚洲天堂在线视频| 亚洲大成色www永久网站| 激情内射亚洲一区二区三区| 亚洲免费视频观看|