Updated September 16, 2023
Introduction to Python dateutil
In Python, dateutil is an extension module of the datetime module, which is used for displaying the date and time. This dateutil module is used when we need to display the timezone using the datetime module, which does not support it as it would be done in the time module. The dateutil has other different features that are provided in Python for computing relative deltas between two given date and datetime objects; another feature is this module is used for parsing the date and time in the string to date-time objects.
Table of Contents
Working of dateutil Module in Python
This section will show how to use the dateutil module, its features, and its examples. The dateutil module is a powerful extension of the datetime module with different features, and this is also an in-built module in Python related to date and time tasks. You can install the dateutil module from PyPI by downloading and installing it in python.
pip install python-dateutil
The above statement can be run in Python 3 and above versions if PyPI is not available with a small change in the above statement, and it is as follows:
pip3 install python-dateutil
Now, let us see the dateutil module and its features, along with examples. Firstly, let us explore the computation of relative deltas using the dateutil module. We use the relative delta to display the date and time of a later year, month, or day. In general, you can apply the relativedelta type to the current date and time to replace it with specific date-time objects or to specify a later interval.
Examples of Python dateutil
Below are the examples:
Example #1
Determine the remaining time in years, months, or days for the upcoming festival or event. We can print this using python dateutil relativedelta.
Code:
from dateutil.relativedelta import *
from dateutil.easter import *
from dateutil.rrule import *
from dateutil.parser import *
from datetime import *
print("program to demonstrate relative delta of dateutil module:")
now = parse("Sun Jun 14 17:13:46 UTC 2020")
today = now.date()
print("Today is: %s" % today)
year = rrule(YEARLY,dtstart=now,bymonth=8,bymonthday=15,byweekday=FR)[0].year
print("Year with next Aug 15th on a Friday is: %s" % year)
rdelta = relativedelta(easter(year), today)
print("How far is the event day of that year: %s" % rdelta)
print("And the event of that year is: %s" % (today+rdelta))
Output:
In the above program, we can see that we are importing relativedelta from the dateutil module. In this program, we aim to print an event that occurred on June 14th, 2020, which happened to fall on a Sunday. So first, we are displaying today’s date, which was in the string format, into a date and time object using the parse() function provided by the dateutil module. Then, we are trying to print the same event conducted in the upcoming year with the same date and day, which would come in 2022. So, it will calculate how many years, months, and days are left. Then, it will print the date along with the day.
Example #2
Now, let’s explore another feature of the dateutil module, which parses the format of the string into date and time objects. Let us demonstrate the parse() function in the below example.
Code:
from dateutil import parser
print("Program to demonstrate parse() function of dateutil:")
print("The parsed date and time of the given string is as follows:")
a = 'Sun Jun 14 10:36:28 2020'
print (parser.parse(a))
b = 'Friday, 25. September 2008 10:36AM'
print (parser.parse(b))
c = '3 / 25 / 2020 10:36:28'
print (parser.parse(c))
d = '9 / 15 / 2015'
print (parser.parse(d))
e = '2010-09-2T10:36:28Z'
print (parser.parse(e))
Output:
In the above program, we can see that we are importing a parser module that has a parse() function to convert the given date and time format in different string formats into particular date-time objects.
Example #3
Now, let us see another feature of the dateutil module.
Code:
from dateutil.rrule import rrule, rruleset, MONTHLY
rules = rruleset()
rules.rrule(rrule(MONTHLY, bymonthday=1, count=3))
rules.rrule(rrule(MONTHLY, bymonthday=2, count=3))
for date in rules:
print(date)
Output:
In the above program, we can see another feature using a rule to display the dates in a range mainly used for recurrence set generations. A module typically implements the recurrence rule documentation, including supporting caching results.
Conclusion
This article concludes that Python’s dateutil module is an in-built tool for handling tasks related to date and time. Throughout this article, we have observed that dateutil extends the functionality of the datetime module. Its primary purpose lies in parsing various string formats into date-time objects. Furthermore, it plays a vital role in presenting timezones, a feature that datetime alone does not support as a time module. We also explored how the rule module utilizes the dateutil module to exhibit the range or recurrence of rule documentation.
FAQs
Q1. Why should I use dateutil?
Ans: dateutil simplifies working with dates and times in Python, making it easier to parse and manipulate date strings, calculate time differences, and perform various other date-related operations.
Q2. Can dateutil handle time zones?
Ans: Yes, dateutil can handle time zones. You can parse date strings with time zone information, and dateutil will automatically handle it. You can also attach time zone information to datetime objects.
Q3. Are there any limitations to using dateutil?
Ans: While dateutil is a versatile library, it may not handle extremely complex date and time scenarios or calendar calculations. You might need to consider more specialized libraries or custom solutions for such cases.
Recommended Articles
We hope that this EDUCBA information on “Python dateutil” was beneficial to you. You can view EDUCBA’s recommended articles for more information.