首頁 > 軟體

python中arrow庫用法大全

2022-08-18 14:02:12

首先需要安裝arrow庫:

pip install arrow

Arrow提供了一個合理的、人性化的方法來建立、操作、格式轉換的日期,時間,和時間戳,幫助我們使用較少的匯入和更少的程式碼來處理日期和時間。

獲取本地和世界標準時間:

範例程式碼:

import arrow
 
# 獲取世界標準時間
utc_time = arrow.utcnow()
print(utc_time)
 
# 獲取本地時間
local_time = arrow.now()
print(local_time)
 
# 獲取指定時區的時間
US_time = arrow.now('US/Pacific')
print(US_time)

執行結果:

將時間戳轉化為arrow物件:arrow.get(timestamp)

範例程式碼:

import time
import arrow
 
float_timestamp = time.time()
print(float_timestamp)
time_tmp = arrow.get(float_timestamp)
print(time_tmp)
 
int_timestamp = int(time.time())
print(int_timestamp)
time_tmp2 = arrow.get(int_timestamp)
print(time_tmp2)

執行結果:

時間戳可以是int,float或者可以轉化為float的字串

將字串轉換為arrow物件:arrow.get(string[,format_string])

範例程式碼:

import arrow
aa = arrow.get("2022-08-17 20:00:00", "YYYY-MM-DD HH:mm:ss")
print(aa)

執行結果:

可以從字串中通過格式引數搜尋時間

範例程式碼:

import arrow
aa = arrow.get("My birthday is in May 1995", "MMMM YYYY")
print(aa)

執行結果:

也可以直接建立arrow物件

範例程式碼:

import arrow
aa = arrow.get(2022, 8, 17)
print(aa)

執行結果:

arrow物件屬性:datetime,timestamp,native,tzinfo

 範例程式碼:

import arrow
 
aa = arrow.utcnow()
print(aa)
print(aa.datetime)
print(aa.timestamp)
print(aa.naive)
print(aa.tzinfo)
 
print(type(aa.datetime))
print(type(aa.timestamp))
print(type(aa.naive))
print(type(aa.tzinfo))

執行結果:

按名稱或tzinfo轉換為時區

範例程式碼:

import arrow
aa = arrow.utcnow()
print(aa)
bb = aa.to('US/Pacific')
print(bb)

執行結果:

獲取datetime物件的值

範例程式碼:

import arrow
aa = arrow.now()
print(aa)
print(aa.year)  # 當前年
print(aa.month)  # 當前月份
print(aa.day)  # 當前天
print(aa.hour)  # 當前第幾個小時
print(aa.minute)  # 當前多少分鐘
print(aa.second)  # 當前多少秒
print(aa.timestamp)  # 獲取時間戳
print(aa.float_timestamp)  # 浮點數時間戳

執行結果:

時間推移a.shift(**kwargs):shift方法獲取某個時間之前或之後的時間,關鍵字引數為years, months, weeks, days, hours,seconds,microseconds

範例程式碼:

import arrow
aa = arrow.now()
print(aa)  # 當前時間
print(aa.shift(weeks=-3))  # 三週前
# print(aa.shift(weeks=3))  # 三週後
print(aa.shift(weeks=+3))  # 三週後
print(aa.shift(days=-1))  # 一天前
print(aa.shift(days=1))  # 一天後
print(aa.shift(weekday=6))  # 距離最近aa的星期日,weekday從0到6

執行結果:

時間替換a.replace(**kwargs):返回一個被替換後的arrow物件,原物件不變

範例程式碼:

import arrow
aa = arrow.now()
print(aa)
print(aa.replace(hour=6))
print(aa.replace(year=2023, month=3, day=6, hour=12, minute=12, second=12))
print(aa.replace(year=2023, month=3, day=6, hour=12, minute=12, second=12, microsecond=12))
print(aa.replace(year=2023, month=3, day=6, hour=12, minute=12, second=12, microsecond=12).to('UTC'))
print(aa.replace(year=2023, month=3, day=6, hour=12, minute=12, second=12, microsecond=12).to('local'))
print(aa.replace(year=2023, month=3, day=6, hour=12, minute=12, second=12, microsecond=12).to('local').naive)

執行結果:

格式化輸出: a.format([format_string])

範例程式碼:

import arrow
 
aa = arrow.now()
print(aa)
print(aa.format())
print(aa.format('YYYY-MM-DD HH:mm:ss ZZ'))
print(aa.ctime())  # 返回日期和時間的ctime格式化表示
print(aa.weekday())  # 以整數形式返回星期幾(0-6)
print(aa.isoweekday())  # 以整數形式返回一週中的ISO日(1-7)
print(aa.isocalendar())  # 返回3元組(ISO年,ISO週數,ISO工作日)
print(aa.toordinal())  # 返回日期的格雷戈裡序數

執行結果:

人性化輸出:a.humanize()

範例程式碼:

import arrow
 
aa = arrow.now()
print(aa.shift(hours=-1))
print(aa.shift(hours=-1).humanize())  # 相對於當前時間
 
print(aa.shift(hours=2))
print(aa.shift(hours=2).humanize())  # 相對於引數時間
print(aa.shift(hours=2).humanize(locale='zh'))  # locale引數可以指定地區語言

執行結果:

獲取任意時間單位的時間跨度

範例程式碼:

import arrow
 
aa = arrow.utcnow().span('hour')
print(aa)
bb = arrow.utcnow().span('year')
print(bb)
cc = arrow.utcnow().span('month')
print(cc)
dd = arrow.utcnow().span('day')
print(dd)

執行結果:

只得到任意單位時間中的最大值或最小值

範例程式碼:

import arrow
 
aa = arrow.utcnow().floor('hour')
print(aa)
bb = arrow.utcnow().ceil('hour')
print(bb)
cc = arrow.utcnow().floor('day')
print(cc)
dd = arrow.utcnow().ceil('day')
print(dd)

執行結果:

到此這篇關於python中arrow庫用法詳解的文章就介紹到這了,更多相關python中arrow庫用法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com