Python DateTime module with programs and exercises

In this post, we’ll learn Python DateTime module with programs and exercises.

Table of Contents

Introduction

Python provides a DateTime module which we’ll be using to work with date and time-related cases and also go through the simple program and learn their implementation of this module.

Date and Time Functions

The module is packed with a lot of functions. But in this post, we’ll be discussing some basic functions.

Get Current Date and Time
import datetime

current_date = datetime.datetime.today()
print(current_date)

#PYTHON OUTPUT
datetime.datetime(2020, 2, 26, 12, 59, 32, 944167)   

Here datetime is module name and followed by another DateTime is a class which contains current DateTime information.

Creating a new Date and time object
from datetime import datetime
my_datetime = datetime(2020,2,26,1,15,30)
print(my_datetime)

#PYTHON OUTPUT
datetime.datetime(2020, 2, 26, 1, 15, 30)

We have imported datetime class from the module. Class datetime needs parameter through which object is created and
the positional parameters are year,month,day,hour,minute,seconds.

Convert String to DateTime object and vice-versa

from datetime import datetime
my_datetime = datetime(2020,2,26,1,15,30)

format = "On %d %B %Y, at %I hour %M minutes and %S seconds %p i saw you in walmart with your brother"
print(my_datetime.strftime(format))

#PYTHON OUTPUT
On 26 February 2020, at 01 hour 15 minutes and 30 seconds AM i saw you in walmart with your brother

format includes those special characters % which will be interpreted to their respective form. Each of those will represent a particular part of date and time.

Let’s look and another example were string is converted to DateTime object and again back to the same string which was used as input to class DateTime.

from datetime import datetime
    
string_datetime = "2020-02-26 8:15:45 PM"
format = "%Y-%m-%d %I:%M:%S %p";
date_obj = datetime.strptime(string_datetime, format)

print("Newly created datetime object : \n")
print(date_obj)

date_object_back_to_string = date_obj.strftime(format)
print("\nConverted datetime object back to string : {}\n".format(date_object_back_to_string));


#PYTHON OUTPUT
python datetime_prog.py 
Newly created datetime object : 

2020-02-26 20:15:45

Converted datetime object back to string : 2020-02-26 08:15:45 PM
Python convert string to DateTime object and vice-versa

strptime(date_string,format) the method takes two arguments they are string representation of DateTime and the format of date-time which is used in this case it is string_datetime.
strftime(format) the method takes one string argument that is in which format the DateTime must be displayed. It converts DateTime object back to a string.

Datetime format code table

Python has a standardized format code for representing symbols with respective date and time representation. Some of them are given below.

SymbolRepresentation
%aRepresents weekday’s short name as Mon, Tue.
%ARepresents weekday’s full name such as Sunday, Monday.
%wRepresents weekday as a decimal number, where 0 is Sunday and 6 is Saturday.
%drepresents a decimal number of a day like 01, 15 etc
%bRepresents month and displays the short name for the month such as for January as Jan, February as Feb
%BRepresents months full name
%mRepresents numerical name for the month
%YRepresents full 4 characters year number

If you’re interested to learn more about DateTime format codes then click here to visit the official site for Python Programming.

Python Date and Time programs

Show month name from a given date

Program with accepts a date with day-month-year format and returns the name of a month in a given date.

from datetime import datetime

print("Enter valid date with format (day-month-year) : \n")

input_date = input()

date_object = datetime.strptime(input_date,"%d-%m-%Y")
month = date_object.strftime("%B")

print("Entered date comes in month is : {}".format(month))

#PYTHON OUTPUT
Enter valid date with format (day-month-year) : 

25-03-2020
Entered date comes in month is : March
Python show month name from a given date.

Show number of days in the month

This program takes year and month as input from the user as numeric values convert them into a DateTime object. Another object is created by incrementing month numeric value and if the month goes above 12 than is reassigned to 1 i.e first month.

    
from datetime import datetime

print("Enter year in format YYYY : \n")
input_year = input()
print("Enter month in number format : \n")
input_month = input()

input_date = "{}-{}".format(input_year,input_month);
format = "%Y-%m"
start_date_obj = datetime.strptime(input_date, format)

if int(input_month) < 12:
    input_month = str(int(input_month)+1)
else: 
    input_month = "1"
    input_year = int(input_year)+1

next_input_date = "{}-{}".format(input_year, input_month)
next_date_obj = datetime.strptime(next_input_date, format)

difference_in_days = (next_date_obj-start_date_obj).days

print("\n***************Output**********************\n")
print("\nYour entered year and month is : {}".format(start_date_obj))
print("\nNext month  : {}".format(next_date_obj))
print("\nDifference in days are : {}".format(difference_in_days))

#PYTHON OUTPUT 1
$ python3.8 datetime_prog.py 
Enter year in format YYYY : 

2020
Enter month in number format : 

1

***************Output**********************


Your entered year and month is : 2020-01-01 00:00:00

Next month  : 2020-02-01 00:00:00

Difference in days are : 31

#PYTHON OUTPUT 2

$ python3.8 datetime_prog.py 
Enter year in format YYYY : 

2020
Enter month in number format : 

2

***************Output**********************


Your entered year and month is : 2020-02-01 00:00:00

Next month  : 2020-03-01 00:00:00

Difference in days are : 29

Python show number of days in the month.

difference_in_days is calculated by subtracting two different DateTime objects.

Show next upcoming month from a given month

Takes month as a number as input from user creates DateTime object and increments the month given by the user with plus 1 which gets us the next month.

from datetime import datetime

print("Enter year in format YYYY : \n")
input_year = input()
print("Enter month in number format : \n")
input_month = input()

input_date = "{}-{}".format(input_year,input_month);
format = "%Y-%m"
start_date_obj = datetime.strptime(input_date, format)

if int(input_month) < 12:
    input_month = str(int(input_month)+1)
else: 
    input_month = "1"
    input_year = int(input_year)+1

next_input_date = "{}-{}".format(input_year, input_month)
next_date_obj = datetime.strptime(next_input_date, format)

difference_in_days = (next_date_obj-start_date_obj).days

print("\n***************Output**********************\n")
print("\nYour entered year and month is : {}".format(start_date_obj))
print("\nNext month  : {}".format(next_date_obj))
print("\nDifference in days are : {}".format(difference_in_days))

#PYTHON OUTPUT 1
$ python3.8 datetime_prog.py 
Enter year in format YYYY : 

2020
Enter month in number format : 

1

***************Output**********************


Your entered year and month is : 2020-01-01 00:00:00

Next month  : 2020-02-01 00:00:00

Difference in days are : 31

#PYTHON OUTPUT 2

$ python3.8 datetime_prog.py 
Enter year in format YYYY : 

2020
Enter month in number format : 

2

***************Output**********************


Your entered year and month is : 2020-02-01 00:00:00

Next month  : 2020-03-01 00:00:00

Difference in days are : 29
Python show next upcoming month from a given month.

Conclusion

You have reached at the end of our post on `Python DateTime module with programs and exercise`.we appreciate you for going through this post.
If you find anything difficult with our way of explanation please leave us a comment and if you have enjoyed reading our post then help
us grow by sharing this post link. We Thank You With All Our Heart.

Top Python Posts