Here in this tutorial we will discuss python datetime module and also learn how to deal with date and time in python.
Python datetime module
Python has an inbuilt module datetime which deal with the date and time. With the help of this module, we can use the time and date in our program.
There are many methods associated with the datetime module let’s have a look at some of the most important.
datetime module to get the current date and time:
import datetime current_date_nd_time = datetime.datetime.now() print(current_date_nd_time)
Behind the code:
We use the datetime.now() method of datetime to get the current date and time. The datetime.now() method return a datetime object in the form of current date and time.
In the above output, 2019-08-02 is the date in the form of yyyy-mm-dd and 20:34:54.969255 in the form of hh-mm-ss.ss
datetime module to get only current date:
import datetime today_date = datetime.date.today() print('its:',today_date)
Behind the code:
The datetime.date.today() method return local date in the form of yyyy-mm-dd
Datetime all inbuilt classes
datetime is a module which mean it contains may .py files, that means it must have many inbuilt classes, let’s see all the classes which have been defined in the datetime module.
we will use the dir() method to print out all the classes defined in the datetime module:
import datetime print(dir(datetime))
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']
The most common classes of datetime modules are:
datetime module date class (datetime.date)
As we know that datetime module has many inbuilt classes, date is one of them. With the help of this date class we can perform many tasks.
Let’s see some example of datetime date class.
1: Use datetime.date to create a datetime object:
With the help of datetime.date we can create a datetime object and define a date.
from datetime import date sam_DOB = date(1999,11,26) print("Sam date of birth is:", sam_DOB) print('the data type if sam_DOB variable is',type(sam_DOB))
Sam date of birth is: 1999-11-26 the data type if sam_DOB variable is <class 'datetime.date'>
Behind the code:
We import the date class from the datetime module and with the help of date() we create a date object. The date() class accept 3 arguments year, month and day to create a date object.
2: date class methods
In one of the above examples we have used the date.today() method to print the current date.
What if we want only the particular year, month, and day from the day.today() object, for this we can use that datetime object to access special attribute from the date class which are obj.year, obj.month and obj.day.
from datetime import date today_date = date.today() #datetime.date object by python for current date sam_DOB = date(1999,11,26) #datetime.date object created by user specified date print("Sam date of birth year is:", sam_DOB.year) print("We are in:", today_date.year) print("sam date of birth month is:", sam_DOB.month) print("Today is:", today_date.day)
Sam date of birth year is: 1999 We are in: 2019 sam date of birth month is: 11 Today is: 2
Datetime time Class (datetime.time):
Datetime module contains time class which deal with time in Hour, minutes, seconds and microseconds. One of the above examples when we printed out the today’s complete date with current time the time was formatted in hour:minutes:seconds.microsecond
1. Lets use the .time() to create datetime.time object
from datetime import time dinner_time = time(21,30,00) print("My dinner time is",dinner_time)
My dinner time is 21:30:00
Behind the code:
Here dinner_time is a time object.
2. Get hour, minutes, seconds and Microsecond from a time object.
With the help of hour, minute, second and microsecond we can grab the specific hours and minutes from the time object:
from datetime import time dinner_time = time(21,30,50,98937) print('dinner Hour is:' ,dinner_time.hour) print('dinner minute is:',dinner_time.minute) print('second is:', dinner_time.second) print('micro second is:',dinner_time.microsecond)
dinner Hour is: 21 dinner minute is: 30 second is: 50 micro second is: 98937
datetime datetime class (datetime.datetime) (from datetime import datetime)
The datetime module has a class with similar name datetime, the datetime class is used to deal with both date and time, let’s see some example.
from datetime import datetime # datetime(year, month, day, hour, minute, second, microsecond) datetime_obj = datetime(2019,1,1,10,20,40,12323) print('year:',datetime_obj.year) print('month',datetime_obj.month) print('day',datetime_obj.day) print('hour',datetime_obj.hour) print('minute',datetime_obj.minute)
year: 2019 month 1 day 1 hour 10 minute 20
datetime timedelta class(datetime.timedelta) or (from datetime import timedelta):
timedelta is one of the important and logical concepts of datetime module, the timedelta is used to find out the difference between two time period.
Let’s see some examples:
from datetime import timedelta # timedelta(weeks, days, hours, minutes, seconds, microseconds) time_1 = timedelta(weeks=10) time_2 = timedelta(weeks=2,hours=10,minutes=40) time_3 = time_1 - time_2 print("the time difference between time_1 and time_2 is:",time_3)
the time difference between time_1 and time_2 is: 55 days, 13:20:00
Python Date formatting:
By default python datetime module and all its class accept date and time in yyyy-mm-dd hh:mm:ss.ms for and print the date and time in same format.
But in datetime module, we have a special method strftime() which can format the date object according to the user will
We can format the date time in many formants such as dd/mm/yyyy or yyyy/dd/mm
from datetime import datetime current_date = datetime.now() #datetime_object.strftime("%d/%m/%Y, %H:%M:%S") change_format_current_date = current_date.strftime("%d/%m/%Y, %H-%M") print('default format is: ',current_date) print('changed format is: ',change_format_current_date)
default format is: 2019-08-02 23:21:41.907656 changed format is: 02/08/2019, 23-21
pytz python timezone module
python has a very interesting module pytz which stand for python time zone with the help of this module we can easily printed the date, time of different time zones or countries.
This is a third-party library you might have to download this first,
use pip install pytz in your command terminal
let’s see an example:
from datetime import datetime import pytz my_time = datetime.now() new_york_time = datetime.now(pytz.timezone('America/New_York')) print("My country:", my_time.strftime("date %d/%m/%Y time %H:%M")) print('New York:', new_york_time.strftime("date %d/%m/%Y time %H:%M"))
My country: date 02/08/2019 time 23:38 New York: date 02/08/2019 time 14:08