Arrow module in Python - GeeksforGeeks

21 Jul, 2021
Arrow is a Python module for working with date and time. It offers a sensible and human-friendly approach to creating, manipulating, formatting and converting dates, times and timestamps. It allows easy creation of date and time instances with timezone awareness.  
The arrow module is installed with the following command:  
pip install arrow
 
User friendly.
Timezone-aware and UTC by default.
Timezone conversion.
Time frame ranging from microsecond to year.
Easy to use.
Formats and parses strings automatically.
Supports a growing list of contributed locales.
 
In order to get current UTC time we use utcnow() method. 
Python3
# importing arrow moduleimport arrow # getting UTC timeutc_time = arrow.utcnow() # printing the current UTC timeprint('Current UTC Time is =', utc_time)
Output :  
Current UTC Time is = 2020-02-28T18:06:39.228924+00:00
 
In order to get current regional(Indian) time we use now() method. 
Python3
# importing arrow moduleimport arrow # getting current indian timeind_time = arrow.now('Asia/Calcutta') # printing the timeprint('Current India Time =', ind_time)
Output :  
Current India Time = 2020-02-28T23:40:07.112695+05:30
In order to parse the string into date format we use get() method. 
Python3
# importing arrow moduleimport arrow # date in string formats ='2020-02-02 12:30:45'  # parsing string into datedate = arrow.get(s, 'YYYY-MM-DD HH:mm:ss') # printing the dateprint(date)
Output :  
2020-02-02T12:30:45+00:00
Unix time is a system for describing a point in time. It is the number of seconds that have elapsed since the Unix epoch, that is the time 00:00:00 UTC on 1 January 1970, minus leap seconds.  
timestamp() method is used to get unix time.  
fromtimestamp() method used to convert the Unix time back to the arrow date object.  
Python3
# importing arrow moduleimport arrow # getting current utc timeutc = arrow.utcnow() # printing the unix timeprint(utc) # getting unix timeunix_time = utc.timestamp # printing unix timeprint(unix_time) # converting unix time into arrow date objectdate = arrow.Arrow.fromtimestamp(unix_time) # printing arrow dateobjectprint(date)
Output :  
2020-03-04T13:33:15.041536+00:00
1583328795
2020-03-04T19:03:15+05:30
An instance of the arrow module can also be created from the DateTime module. Consider the below example for a better understanding of the topic. 
Python3
# importing arrow moduleimport arrow # importing datetime from datetime modulefrom datetime import datetime # getting current time using datetime moduledt = datetime.now() # creating arrow instance from datetime instancearrow_dt = arrow.Arrow.fromdate(dt) # printing datetime instanceprint(dt) # printing arrow instanceprint(arrow_dt)
Output :  
2020-03-04 19:16:04.317690
2020-03-04T00:00:00+00:00
if you want to get any object as an individual, here are some properties that can be used. 
Python3
#import arrow moduleimport arrow #Call datetime functions that return propertiesa = arrow.utcnow()print(a.time())print(a.date()) #Get any datetime valueprint(a.year)
Output :  
datetime.time(19, 16, 04, 317690)
datetime.date(2020, 3, 4)
2020
if you want to replace or shift any object as an individual, here are some properties that can be used. 
Python3
#import arrow moduleimport arrow # getting current utc timea = arrow.utcnow() # printing the unix time without alterationprint("without alteration: ",a) # replacing only the hours to 5 and minutes to 30b = a.replace(hour=5, minute=30)print("with hours and minutes replaced: ",b) # shifting forward in weeksc = a.shift(weeks=+3)print("with weeks shifted 3 forward: ",c) # replacing only the timezoned = a.replace(tzinfo='US/Pacific')print("with timezone replaced: ",d)
Output :  
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 
All the above properties and function outputs are more of a computer format but what if you wanted it to be more of a human form? for example: “an hour ago” or “2 hours ago”,here are some properties that can be used to achieve humanized format. 
Python3
#import arrow moduleimport arrow #Humanize to pastapast = arrow.utcnow().shift(hours=-1)print(apast.humanize()) #humanize to futurepresent = arrow.utcnow()afuture = present.shift(hours=3)print(afuture.humanize(present)) #Indicate a specific time granularityafuture = present.shift(minutes=73)print(afuture.humanize(present, granularity="minute"))print(afuture.humanize(present, granularity=["hour", "minute"]))
Output :  
'an hour ago'
'in 3 hours'
'in 73 minutes'
'in an hour and 13 minutes'
 
kevadiyasmeet
anikakapoor
python-modules
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Install PIP on Windows ?
How To Convert Python Dictionary To JSON?
Check if element exists in list in Python
How to drop one or multiple columns in Pandas Dataframe
Python Classes and Objects
Python | os.path.join() method
Create a directory in Python
Defaultdict in Python
Python | Get unique values from a list
Python | Pandas dataframe.groupby()