Learn Python – Python Date and time- Basic and advance

Python provides the datetime module work with actual dates and times. In real-world applications, we want to work with the date and time. Python permits us to time table our Python script to run at a specific timing.

In Python, the date is not a information type, however we can work with the date objects via importing the module named with datetime, time, and calendar.

In this part of the tutorial, we will talk about how to work with the date and time objects in Python.

The datetime classes are categorised in the six essential classes.

date – It is a naive ideal date. It consists of the year, month, and day as attributes.

time – It is a perfect time, assuming every day has precisely 24*60*60 seconds. It has hour, minute, second, microsecond, and tzinfo as attributes.

datetime – It is a grouping of date and time, along with the attributes year, month, day, hour, minute, second, microsecond, and tzinfo.

timedelta – It represents the difference between two dates, time or datetime instances to microsecond resolution.

tzinfo – It provides time zone information objects.

timezone – It is included in the new version of Python. It is the class that implements the tzinfo abstract base class.


In Python, the time instants are counted given that 12 AM, 1st January 1970. The characteristic time() of the module time returns the complete number of ticks spent due to the fact 12 AM, 1st January 1970. A tick can be considered as the smallest unit to measure the time.

Consider the following example

import time;  
#prints the number of ticks spent since 12 AM, 1st January 1970  



How to get the current time?

The localtime() features of the time module are used to get the present day time tuple. Consider the following example.


import time;    
#returns a time tuple     


time.struct_time(tm_year=2020, tm_mon=4, tm_mday=3, tm_hour=21, tm_min=21, tm_sec=40, tm_wday=4, tm_yday=94, tm_isdst=0)

Time tuple

The time is handled as the tuple of 9 numbers. Let’s seem to be at the participants of the time tuple.

Index Attribute Values
0 Year 4 digit (for example 2018)
1 Month 1 to 12
2 Day 1 to 31
3 Hour 0 to 23
4 Minute 0 to 59
5 Second 0 to 60
6 Day of weak 0 to 6
7 Day of year 1 to 366
8 Daylight savings -1, 0, 1 , or -1

Getting formatted time

The time can be formatted with the aid of the usage of the asctime() function of the time module. It returns the formatted time for the time tuple being passed.


import time    
  #returns the formatted time      


Tue Dec 18 15:31:39 2018

Python sleep time

The sleep() approach of time module is used to end the execution of the script for a given amount of time. The output will be delayed for the range of seconds supplied as the float.

Consider the following example.


import time  
for i in range(0,5):  
    #Each element will be printed after 1 second  



The datetime Module

The datetime module permits us to create the customized date objects, perform more than a few operations on dates like the comparison, etc.

To work with dates as date objects, we have to import the datetime module into the python supply code.

Consider the following example to get the datetime object representation for the cutting-edge time.


import datetime  
#returns the current datetime object     


2020-04-04 13:18:35.252578

Creating date objects

We can create the date objects bypassing the preferred date in the datetime constructor for which the date objects are to be created.

Consider the following example.


import datetime    
#returns the datetime object for the specified date    


2020-04-04 00:00:00

We can also specify the time alongside with the date to create the datetime object. Consider the following example.


import datetime  
#returns the datetime object for the specified time      


2020-04-04 01:26:40

In the above code, we have exceeded in datetime() feature year, month, day, hour, minute, and millisecond attributes in a sequential manner.

Comparison of two dates

We can compare two dates by way of the use of the evaluation operators like >, >=, <, and <=.

Consider the following example.


from datetime import datetime as dt    
#Compares the time. If the time is in between 8AM and 4PM, then it prints working hours otherwise it prints fun hours    
if dt(dt.now().year,dt.now().month,dt.now().day,8)<dt.now()<dt(dt.now().year,dt.now().month,dt.now().day,16):    
    print("Working hours....")    
    print("fun hours")   


fun hours

The calendar module

Python offers a calendar object that incorporates a number of methods to work with the calendars.

Consider the following example to print the calendar for the final month of 2018.


import calendar;    
cal = calendar.month(2020,3)    
#printing the calendar of December 2018    


March 2020
Mo Tu We Th Fr Sa Su
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

Printing the calendar of whole year

The prcal() approach of calendar module is used to print the calendar of the whole year. The 12 months of which the calendar is to be printed ought to be surpassed into this method.


import calendar    
#printing the calendar of the year 2019    
s = calendar.prcal(2020)