0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Delorean:優(yōu)秀的時間格式智能轉(zhuǎn)換工具

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-30 10:23 ? 次閱讀

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

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

至于 Delorean 這個模塊名稱的由來,Delorean 是電影《回到未來》里的那輛極為炫酷的鷗翼汽車,采用這部電影里的非常具有代表性的汽車的名字作為庫名,作者估計也是想表達(dá)使用這個庫能讓你在時空里任意遨游,沒有掣肘。

這個模塊最讓我感到智能的是,它能自動識別字符串的時間格式,轉(zhuǎn)換為 Delorean 對象,而且這個 Delorean 對象和 Datetime 對象是相通的:

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.準(zhǔn)備

開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點:Python 編程的最好搭檔—VSCode 詳細(xì)指南

請選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
  2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install Delorean

2.Delorean 基礎(chǔ)使用

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

from delorean import Delorean

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

將datetime格式的時間轉(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時間
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)換為國內(nèi)時區(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')

輸出為 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

查看時間戳及UTC時間:

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

用unix時間戳初始化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的時間加減法。Delorean可以使用timedelta進(jìn)行加減,得到一個Delorean對象:

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')

3. Delorean 高級使用

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

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')

另外,datetime格式的字符串處理的時候轉(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')
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    566

    瀏覽量

    20384
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84078
  • 轉(zhuǎn)換工具
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    5546
收藏 人收藏

    評論

    相關(guān)推薦

    原理圖格式轉(zhuǎn)換工具

    現(xiàn)在正在做一個格式轉(zhuǎn)換工具,大家有什么好的建議和思路沒有呢,也就是可以protel的格式,orcad等原理圖,庫格式的互相轉(zhuǎn)換.
    發(fā)表于 06-17 14:08

    CD-ROM映像文件格式轉(zhuǎn)換工具

    WinISO是一個CD-ROM映像文件格式轉(zhuǎn)換工具,并且可以直接編輯光盤映像文件!WinISO能夠運行在Windows95/98/Me/NT/2000環(huán)境下。它可以處理幾乎所有的CD-ROM映像文件,包括ISO和BIN。通過WinISO,
    發(fā)表于 05-25 13:33 ?44次下載

    TKStudio 文件捆綁轉(zhuǎn)換工具

    TKStudio 文件捆綁轉(zhuǎn)換工具介紹
    發(fā)表于 07-19 15:51 ?65次下載

    PCB圖片轉(zhuǎn)換工具

    電子發(fā)燒友網(wǎng)站提供《PCB圖片轉(zhuǎn)換工具.rar》資料免費下載
    發(fā)表于 06-18 16:42 ?32次下載

    pcb單位轉(zhuǎn)換工具下載

    資料介紹說明: 軟件名稱 :pcb轉(zhuǎn)換工具 文件大小:2.03MB 文件格式:rar 軟件語言:簡體中文 運行環(huán)境: win2003winxpwin2000win9x pcb單位轉(zhuǎn)換工具,pcb工程專用
    發(fā)表于 11-05 09:40 ?47次下載
    pcb單位<b class='flag-5'>轉(zhuǎn)換工具</b>下載

    進(jìn)制轉(zhuǎn)換工具

    進(jìn)制轉(zhuǎn)換工具
    發(fā)表于 12-01 16:44 ?3次下載

    protel-pads轉(zhuǎn)換工具

    protel-pads轉(zhuǎn)換工具
    發(fā)表于 02-14 17:25 ?0次下載

    HEX與BIN文件格式轉(zhuǎn)換工具應(yīng)用程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是HEX與BIN文件格式轉(zhuǎn)換工具應(yīng)用程序免費下載。
    發(fā)表于 01-11 17:08 ?57次下載
    HEX與BIN文件<b class='flag-5'>格式</b><b class='flag-5'>轉(zhuǎn)換工具</b>應(yīng)用程序免費下載

    2020年好用的視頻格式轉(zhuǎn)換工具

    過于單一,根本滿足不了現(xiàn)在的轉(zhuǎn)換需求,同時轉(zhuǎn)換的速度也太慢。本文將為大家列舉幾款功能強大同時簡單好用的正規(guī)視頻轉(zhuǎn)換工具,為大家日后需要時做準(zhǔn)備。 一、萬興優(yōu)轉(zhuǎn) 萬興優(yōu)轉(zhuǎn)是一款全能的視頻轉(zhuǎn)換工具
    的頭像 發(fā)表于 08-25 14:56 ?2450次閱讀

    你應(yīng)該嘗試的6款免費圖像轉(zhuǎn)換工具

    圖像轉(zhuǎn)換工具是指幫助將某種圖像格式轉(zhuǎn)換成另一種格式的程序。雖然流行的格式,如PNG、JPEG、TIFF和GIF都與大多數(shù)設(shè)備和程序兼容,但某
    的頭像 發(fā)表于 03-17 16:24 ?4658次閱讀

    郵件格式轉(zhuǎn)換工具破解版的功能及主要特點

    Coolutils Total Mail Converter Pro 綠色破解版是一款專業(yè)的郵件轉(zhuǎn)換工具,適用于需要快速可靠的方式將電子郵件轉(zhuǎn)換為 HTM、TXT、PDF 或 RTF 格式的用戶。
    發(fā)表于 03-08 09:52 ?939次閱讀

    Delorean優(yōu)秀的Python時間格式轉(zhuǎn)換工具

    DeLorean是一個Python的第三方模塊,基于 pytz 和 dateutil 開發(fā)的,用于處理Python中日期時間格式轉(zhuǎn)換。 由于時間
    的頭像 發(fā)表于 10-31 10:51 ?415次閱讀

    xgus轉(zhuǎn)換工具

    xgus轉(zhuǎn)換工具
    發(fā)表于 04-28 13:52 ?2次下載

    視頻格式轉(zhuǎn)換工具

    視頻格式轉(zhuǎn)換工具
    發(fā)表于 04-28 13:58 ?1次下載

    音頻格式轉(zhuǎn)換工具

    音頻格式轉(zhuǎn)換工具
    發(fā)表于 04-28 13:59 ?6次下載