日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python之深入解析优秀的时间格式转换工具Delorean

發(fā)布時(shí)間:2024/5/21 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python之深入解析优秀的时间格式转换工具Delorean 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、前言

  • DeLorean 是一個(gè) Python 的第三方模塊,基于 pytz 和 dateutil 開發(fā)的,用于處理 Python 中日期時(shí)間的格式轉(zhuǎn)換。
  • 由于時(shí)間轉(zhuǎn)換是一個(gè)足夠微妙的問(wèn)題,DeLorean 希望為移位、操作和生成日期時(shí)間提供一種更干凈、更省事的解決方案。比如,實(shí)例化字符串形式的時(shí)間對(duì)象,Delorean 只需要 parse 指定字符串,不需要聲明其格式就可以進(jìn)行轉(zhuǎn)換。
  • 至于 Delorean 這個(gè)模塊名稱的由來(lái),Delorean 是電影《回到未來(lái)》里的那輛極為炫酷的鷗翼汽車,采用這部電影里的非常具有代表性的汽車的名字作為庫(kù)名,作者估計(jì)也是想表達(dá)使用這個(gè)庫(kù)能讓我們?cè)跁r(shí)空里任意遨游,沒有掣肘。

二、準(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 盤(推薦)。如果希望換一個(gè)盤安裝,可以點(diǎn)擊 Customize installation 在里面選擇其他的盤。
  • 在 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 文件,雙擊打開,按照指示步驟進(jìn)行安裝即可。

② 安裝依賴

  • 請(qǐng)選擇以下任一種方式輸入命令安裝依賴:
    • Windows 環(huán)境打開 Cmd (開始 - 運(yùn)行 - CMD);
    • MacOS 環(huán)境打開 Terminal (command + 空格輸入 Terminal);
    • 如果使用的是 VSCode 編輯器或 Pycharm,可以直接使用界面下方的 Terminal。
pip install Delorean

三、Delorean 基礎(chǔ)使用

  • 輕松獲取當(dāng)前時(shí)間:
from delorean import Deloreand = Delorean() print(d) # Delorean(datetime=datetime.datetime(2021, 10, 6, 9, 5, 57, 611589), timezone='UTC')
  • 將 datetime 格式的時(shí)間轉(zhuǎn)化為 Delorean:
import datetime from delorean import Deloreand = 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')
  • 轉(zhuǎn)換為國(guó)內(nèi)時(shí)區(qū):
import datetime from delorean import Deloreand = 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')
  • 輸出為 datetime、date 也不在話下:
import datetime from delorean import Deloreand = 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
  • 查看無(wú)時(shí)區(qū)時(shí)間及時(shí)間戳:
import datetime from delorean import Deloreand = 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
  • 用 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')
  • Delorean 支持 timedelta 的時(shí)間加減法。Delorean 可以使用 timedelta 進(jìn)行加減,得到一個(gè) Delorean 對(duì)象:
import datetime from delorean import Deloreand = 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')

四、Delorean 高級(jí)使用

  • 通常情況下不關(guān)心有多少微妙或者多少秒,因此 Delorean 提供了非常方便的過(guò)濾方式:
from delorean import Deloreand = 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')
  • 另外,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')

總結(jié)

以上是生活随笔為你收集整理的Python之深入解析优秀的时间格式转换工具Delorean的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。