<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 3971字,需瀏覽 8分鐘

           ·

          2021-10-10 09:26

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

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

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

          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


          查看無時區(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.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')


          我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實戰(zhàn)教程,請持續(xù)關(guān)注Python實用寶典。

          有任何問題,可以在公眾號后臺回復(fù):加群,回答相應(yīng)紅字驗證信息,進(jìn)入互助群詢問。

          原創(chuàng)不易,希望你能在下面點個贊和在看支持我繼續(xù)創(chuàng)作,謝謝!

          點擊下方閱讀原文可獲得更好的閱讀體驗

          Python實用寶典?(pythondict.com)
          不只是一個寶典
          歡迎關(guān)注公眾號:Python實用寶典

          瀏覽 30
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天堂AV秘 永久进入 | 99爱精品视频在线观看 | 五月天激情性爱 | 怡春院在线 | 成人毛片18男人毛片免小说 |