溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python?arrow日期時間模塊舉例分析

發(fā)布時間:2021-11-25 11:06:18 來源:億速云 閱讀:175 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“Python arrow日期時間模塊舉例分析”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

    Python中有很多時間和日期處理的庫,有time、datetime等,雖然提供了很完整的對日期、時間以及時區(qū)轉(zhuǎn)換處理的功能,但是方法過多,不易于記憶,而且經(jīng)常需要各種轉(zhuǎn)換操作,非常繁瑣,比如時間和時間戳的轉(zhuǎn)換,格式化時間字符串轉(zhuǎn)換等等,幾乎每次使用都要先看一下教程文檔。那么有沒有使用起來更人性化的日期時間處理庫呢?接下來就來看一下arrow日期時間庫。

    arrow是一個專門處理時間和日期的輕量級Python庫,它提供了一種合理、人性化的方式來創(chuàng)建、操作、格式化、轉(zhuǎn)換日期、時間和時間戳,可以比較輕易的創(chuàng)建具有時區(qū)意識的日期和時間實例。

    可以使用pip install arrow進(jìn)行安裝。

    arrow模塊的使用

    獲取arrow對象

    Arrow可以很靈活的將多種格式的時間數(shù)據(jù)轉(zhuǎn)換成Arrow對象,如下:

    import arrow
    print(repr(arrow.Arrow(2021, 8, 23, 8)))
    print(repr(arrow.get(2021, 8, 23, 8, 40)))
    print(repr(arrow.get('2021-08-23 09:00')))
    print(repr(arrow.get('2021.08.23')))
    print(repr(arrow.get('23/2012/08', 'DD/YYYY/MM')))

    執(zhí)行結(jié)果如下:

    Python?arrow日期時間模塊舉例分析

    上面幾種方式都可以將字符數(shù)據(jù)轉(zhuǎn)換為arrow對象,轉(zhuǎn)換非常靈活。 除此之外,還可以把時間戳轉(zhuǎn)換為arrow對象。

    print(repr(arrow.get(1629683393.6558669)))

    獲取當(dāng)前時間

    utc_time = arrow.utcnow()
    local_time = arrow.now()
    print(utc_time)
    print(local_time)

    通過utcnow()函數(shù)和now()函數(shù)分別獲取的是utc時間和本地時間,當(dāng)然我們也可以在調(diào)用now()時指定時區(qū),從而獲取指定時區(qū)的時間,例如arrow.now('US/Pacific')。

    時間形式轉(zhuǎn)換

    使用日期時間的時候我們經(jīng)常需要轉(zhuǎn)換操作,比如轉(zhuǎn)換成指定格式的時間字符串,轉(zhuǎn)換成時間戳等。

    轉(zhuǎn)換成時間字符串

    now = arrow.now()
    print(now)
    print(now.format())
    print(now.format("YYYY-MM-DD hh:mm:ss"))
    print(now.format("YYYY-MM-DD"))

    執(zhí)行結(jié)果如下:

    Python?arrow日期時間模塊舉例分析

    看到這個,是不是感覺比datetime模塊的'%Y-%M-%D %h:%m:%s'格式化方式更人性化更便于記憶呢。

    轉(zhuǎn)換成時間戳

    可以使用t.timestamp將arrow對象轉(zhuǎn)換成時間戳。

    now.timestamp

    獲取數(shù)據(jù)

    轉(zhuǎn)換為Arrow對象后,我們可以很方便的獲取我們想要的各種時間數(shù)據(jù),通過year、month、day、hour、minute、second、week等屬性,如:

    now = arrow.now()
    print(now.year)
    print(now.month)
    print(now.day)
    print(now.hour)
    print(now.minute)
    print(now.second)
    print(now.week)

    修改時間

    有時拿到一個時間時,我們需要對時間就行修改,例如修改時區(qū)、修改時間等等,我們可以使用以下方式去修改。

    now = arrow.now()
    print(now.format("YYYY-MM-DD hh:mm:ss"))  # 2021-08-23 10:11:04
    now_utc = now.to("utc")
    print(now_utc.format("YYYY-MM-DD hh:mm:ss"))  # 2021-08-23 02:11:04
    now1 = now.replace(day=31, hour=12)
    print(now1.format("YYYY-MM-DD hh:mm:ss"))  # 2021-08-31 12:11:04
    now2 = now.shift(months=-2)
    print(now2.format("YYYY-MM-DD hh:mm:ss"))  # 2021-06-23 10:11:04

    我們可以使用to()方法切換時區(qū),使用replace()方法修改時間,使用shift()進(jìn)行時間的前后推移。

    “Python arrow日期時間模塊舉例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI