Arrow 是一個用於處理日期和時間的 Python 模塊。它提供了一種合理的 human-friendly 方法來創建、操作、格式化和轉換日期、時間和時間戳。它允許輕鬆創建具有時區感知的日期和時間實例。
安裝
使用以下命令安裝 arrow 模塊:
pip install arrow
特征
- 方便使用的。
- 默認時區感知和 UTC。
- 時區轉換。
- 時間範圍從微秒到年。
- 便於使用。
- 自動格式化和解析字符串。
- 支持越來越多的貢獻語言環境列表。
獲取 UTC(協調世界時)時間。
為了獲取當前 UTC 時間,我們使用utcnow()方法。
Python3
# importing arrow module
import arrow
# getting UTC time
utc_time = arrow.utcnow()
# printing the current UTC time
print('Current UTC Time is =', utc_time)
輸出:
Current UTC Time is = 2020-02-28T18:06:39.228924+00:00
獲取印度時間。
為了獲取當前地區(印度)時間,我們使用now()方法。
Python3
# importing arrow module
import arrow
# getting current indian time
ind_time = arrow.now('Asia/Calcutta')
# printing the time
print('Current India Time =', ind_time)
輸出:
Current India Time = 2020-02-28T23:40:07.112695+05:30
解析字符串到日期
為了將字符串解析為日期格式,我們使用get()方法。
Python3
# importing arrow module
import arrow
# date in string format
s ='2020-02-02 12:30:45'
# parsing string into date
date = arrow.get(s, 'YYYY-MM-DD HH:mm:ss')
# printing the date
print(date)
輸出:
2020-02-02T12:30:45+00:00
Unix時間
Unix 時間是一種說明時間點的係統。它是自 Unix 紀元以來經過的秒數,即 1970 年 1 月 1 日 UTC 時間 00:00:00 減去閏秒。
- timestamp()方法用於獲取unix時間。
- fromtimestamp() 方法用於將 Unix 時間轉換回箭頭日期對象。
Python3
# importing arrow module
import arrow
# getting current utc time
utc = arrow.utcnow()
# printing the unix time
print(utc)
# getting unix time
unix_time = utc.timestamp
# printing unix time
print(unix_time)
# converting unix time into arrow date object
date = arrow.Arrow.fromtimestamp(unix_time)
# printing arrow dateobject
print(date)
輸出:
2020-03-04T13:33:15.041536+00:00 1583328795 2020-03-04T19:03:15+05:30
來自日期時間的箭頭實例
箭頭模塊的實例也可以從 DateTime 模塊創建。請考慮以下示例以更好地理解該主題。
Python3
# importing arrow module
import arrow
# importing datetime from datetime module
from datetime import datetime
# getting current time using datetime module
dt = datetime.now()
# creating arrow instance from datetime instance
arrow_dt = arrow.Arrow.fromdate(dt)
# printing datetime instance
print(dt)
# printing arrow instance
print(arrow_dt)
輸出:
2020-03-04 19:16:04.317690 2020-03-04T00:00:00+00:00
用於獲取單個日期時間對象的屬性
如果您想獲取任何單獨的對象,可以使用以下一些屬性。
Python3
#import arrow module
import arrow
#Call datetime functions that return properties
a = arrow.utcnow()
print(a.time())
print(a.date())
#Get any datetime value
print(a.year)
輸出:
datetime.time(19, 16, 04, 317690) datetime.date(2020, 3, 4) 2020
替換和移動屬性
如果您想替換或移動任何對象作為一個個體,這裏有一些可以使用的屬性。
Python3
#import arrow module
import arrow
# getting current utc time
a = arrow.utcnow()
# printing the unix time without alteration
print("without alteration: ",a)
# replacing only the hours to 5 and minutes to 30
b = a.replace(hour=5, minute=30)
print("with hours and minutes replaced: ",b)
# shifting forward in weeks
c = a.shift(weeks=+3)
print("with weeks shifted 3 forward: ",c)
# replacing only the timezone
d = a.replace(tzinfo='US/Pacific')
print("with timezone replaced: ",d)
輸出:
without alteration: 2020-03-04T13:33:15.041536+00:00 with hours and minutes replaced: 2020-03-04T05:30:15.041536+00:00 with weeks shifted 3 forward: 2020-03-25T13:33:15.041536+00:00 with timezone replaced: 2020-03-04T13:33:15.041536-07:00
人性化的格式
所有上述屬性和函數輸出都更像是計算機格式,但如果您希望它更像人類形式怎麽辦?例如:“an hour ago”或“2小時前”,這裏有一些可用於實現人性化格式的屬性。
Python3
#import arrow module
import arrow
#Humanize to past
apast = arrow.utcnow().shift(hours=-1)
print(apast.humanize())
#humanize to future
present = arrow.utcnow()
afuture = present.shift(hours=3)
print(afuture.humanize(present))
#Indicate a specific time granularity
afuture = present.shift(minutes=73)
print(afuture.humanize(present, granularity="minute"))
print(afuture.humanize(present, granularity=["hour", "minute"]))
輸出:
'an hour ago' 'in 3 hours' 'in 73 minutes' 'in an hour and 13 minutes'
相關用法
- Python ArcGIS UX.featured_content用法及代碼示例
- Python ArcGIS PortalLicense.update用法及代碼示例
- Python arcgis.mapping.SceneLayerManager.delete_tiles用法及代碼示例
- Python arcgis.mapping.SceneLayerManager.edit_tile_service用法及代碼示例
- Python arcgis.mapping.SceneLayerManager.import_tiles用法及代碼示例
- Python arcgis.mapping.SceneLayerManager.update_tiles用法及代碼示例
- Python arcgis.mapping.MapImageLayerManager.import_tiles用法及代碼示例
- Python arcgis.apps.hub.Initiative.delete用法及代碼示例
- Python arcgis.apps.hub.Initiative.update用法及代碼示例
- Python arcgis.apps.hub.Indicator.delete用法及代碼示例
- Python arcgis.apps.hub.Indicator.update用法及代碼示例
- Python arcgis.apps.hub.InitiativeManager.add用法及代碼示例
- Python arcgis.apps.hub.InitiativeManager.get用法及代碼示例
- Python arcgis.apps.hub.IndicatorManager.add用法及代碼示例
- Python arcgis.learn.export_training_data用法及代碼示例
- Python arcgis.learn.detect_objects用法及代碼示例
- Python arcgis.learn.classify_objects用法及代碼示例
- Python arcgis.learn.classify_pixels用法及代碼示例
- Python arcgis.learn.list_models用法及代碼示例
- Python arcgis.learn.train_model用法及代碼示例
- Python ArcGIS GIS.map用法及代碼示例
- Python ArcGIS GIS.update_properties用法及代碼示例
- Python ArcGIS GIS用法及代碼示例
- Python ArcGIS Item.add_comment用法及代碼示例
- Python ArcGIS Item.add_relationship用法及代碼示例
注:本文由純淨天空篩選整理自rakshitarora大神的英文原創作品 Arrow module in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。