Although a date is not a data type in Python, we may use the datetime module to work with date objects. For example, import the datetime module and use the following code to display the current date:
import datetime _date = datetime.datetime.now() print(_date)
When we run the code from the previous example, we get the following resultant date:
The components included in the date include the following
- second, and microsecond.
Many methods in the datetime module return information about the date object. Here are a few samples of what you’ll learn about later in this article:
Example: Return the year and name of a weekday
import datetime _date = datetime.datetime.now() print(_date.year) print(_date.strftime("%A"))
Date Objects: How to create Them
The datetime module’s datetime() class (constructor) is used to produce a date. The datetime() class requires three parameters: year, month, and day to generate a date.
import datetime _date = datetime.datetime(2022, 1, 12) print(_date)
Time and timezone parameters (hour, minute, second, microsecond, tzone) are likewise available in the datetime() class, although optional and have a default value of 0. (None for timezone).
The strftime() method
The strftime() method is used to calculate the time in seconds. A technique for formatting date objects into readable strings is available in the datetime object. strftime() is the method’s name, and it has only one parameter, format, which specifies the format of the returned string:
import datetime _date = datetime.datetime(2022, 1, 1) print(_date.strftime("%B"))
To work with dates and times, Python has a module called datetime. Before we go any further, let’s make a couple of simple programs that deal with date and time.
Get the Current Date and Time
import datetime datetime_object = datetime.datetime.now() print(datetime_object)
Datetime class is one of the classes defined in the datetime module. We’ve used the import datetime statement to import the datetime module. We then created a datetime object with the current local date and time using the now() function.
Get Current Date
import datetime date_object = datetime.date.today() print(date_object)
We utilized the date class’s today() function to acquire a date object holding the current local date in this program. Alternatively, using today’s class method, you may generate a date object that contains the current date. Here’s how to do it:
from datetime import date date_today = date.today() print("Current date =", date_today)
What is the content of datetime?
We can use the dir() function to acquire a list of all a module’s characteristics.
import datetime print(dir(datetime))
In the datetime module, the following classes are frequently used:
- date Class
- time Class
- datetime Class
- timedelta Class
- datetime.date Class
The date class is used to create date objects. A date object represents a date with the following parameters year, month, and day.
Date object representing a date
import datetime _date = datetime.date(2022, 1, 1) print(_date)
If you’re wondering, date() is a constructor of the date class in the previous example. Three arguments are passed to the constructor: year, month, and day. A date object is represented by the variable _a_time. Only the datetime module’s date class is imported. Here’s how to do it:
from datetime import date _a_time = date(2019, 4, 13) print(_a_time)
Get a date from a timestamp
A timestamp can also be used to build date objects. The amount of seconds between a given date and January 1, 1970, at UTC is known as a Unix timestamp. The fromtimestamp() method is used to convert a timestamp to date.
from datetime import date timestamp = date.fromtimestamp(1326244364) print("Date =", timestamp)
How to Print today’s year, month, and day
From the date object, we can extract the year, month, day, day of the week, etc. Here’s how to do it:
from datetime import date # date object of today's date date_today = date.today() print("Current year:", date_today.year) print("Current month:", date_today.month) print("Current day:", date_today.day)
datetime.time -The local time is represented by a time object created from the time class.
Represent the time using the Time object
from datetime import time # initialize time as hour = 0, minute = 0, second = 0 _a_time = time() print("a =", _a_time) # set the time as hour, minute and second _b_time = time(8, 56, 20) print("b =", _b_time) # set the time as hour, minute and second _c_time = time(hour = 8, minute = 56, second = 20) print("c =", _c_time) # time(hour, minute, second, microsecond) d = time(8, 56, 20, 234566) print("d =", d)
Display the time in hours, minutes, seconds, and microseconds
Once you’ve created it, you can quickly print the attributes of a time object, such as the hour, minute, and so on.
from datetime import time _a_time = time(8, 56, 20) print("hour =", _a_time.hour) print("minute =", _a_time.minute) print("second =", _a_time.second) print("microsecond =", _a_time.microsecond)
datetime.datetime – Dateclass is a class in the datetime module that can hold data from the date and time objects.
How to use Python’s datetime object
from datetime import datetime # initialize datetime as year, month, and day _a_time = datetime(2022, 1, 12) print(_a_time) # initialize datetime as year, month, day, hour, minute, second, and microseconds _b_time = datetime(2022, 8, 56, 34, 58, 22, 342380) print(_b_time)
The datetime() constructor’s first three arguments, year, month, and the day is required.
Print the year, month, hour, minute, and timestamp
from datetime import datetime _a_time = datetime(2022, 1, 12, 23, 55, 59, 342380) print("year =", _a_time.year) print("month =", _a_time.month) print("hour =", _a_time.hour) print("minute =", _a_time.minute) print("timestamp =", _a_time.timestamp())
datetime.timedelta – The variation between two given dates or times is denoted using the timedelta object.
Compare and contrast two dates and times
from datetime import datetime, date the_time1 = date(year = 2018, month = 7, day = 12) the_time2 = date(year = 2017, month = 12, day = 23) the_time3 = the_time1 - the_time2 print("the_time3 =", the_time3) the_time4 = datetime(year = 2018, month = 7, day = 12, hour = 7, minute = 9, second = 33) the_time5 = datetime(year = 2019, month = 6, day = 10, hour = 5, minute = 55, second = 13) the_time6 = the_time4 - the_time5 print("the_time6 =", the_time6) print("type of the_time3 =", type(the_time3)) print("type of the_time6 =", type(the_time6))
What is the difference between two timedelta objects
from datetime import timedelta the_time1 = timedelta(weeks = 2, days = 5, hours = 1, seconds = 33) the_time2 = timedelta(days = 4, hours = 11, minutes = 4, seconds = 54) the_time3 = the_time1 - the_time2 print("the_time3 =", the_time3)
How to print negative timedelta object
from datetime import timedelta the_time1 = timedelta(seconds = 33) the_time2 = timedelta(seconds = 54) the_time3 = the_time1 - the_time2 print("the_time3 =", the_time3) print("the_time3 =", abs(the_time3))
Time length in seconds
The total_seconds() method returns the cumulative number of seconds in a timedelta object.
from datetime import timedelta the_time = timedelta(days = 5, hours = 1, seconds = 33, microseconds = 233423) print("total seconds =", the_time.total_seconds())
The + operator is also be used to find the sum of two dates and times. Integers and floats are also be used to multiply and divide a timedelta object.
Python datetime format
Date and time are represented differently in different regions, organizations, etc. In the United States, mm/dd/yyyy is more frequent, while dd/mm/yyyy is more popular in the United Kingdom. To handle this, Python includes strftime() and strptime() functions. strftime() converts a datetime object to a string in Python.
The strftime() method is found in the date, datetime, and time classes. The method converts a date, datetime, or time object into a formatted string.
How to Format the date using strftime()
from datetime import datetime # current date and time now = datetime.now() the_time = now.strftime("%H:%M:%S") print("time:", the_time) string_time_format1 = now.strftime("%m/%d/%Y, %H:%M:%S") # mm/dd/YY H:M:S format print("string time1:", string_time_format1) string_time_format2 = now.strftime("%d/%m/%Y, %H:%M:%S") # dd/mm/YY H:M:S format
strptime() is a Python function that converts a string to a datetime. The strptime() method converts a string into a datetime object (representing date and time).
from datetime import datetime date_string = "12 January, 2022" print("date_string =", date_string) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object)
Two arguments are passed to the strptime() method:
- a string that corresponds to the first argument’s date and time format code
- By the way, the format codes for the day, month(full name), and year are %d, %B, and %Y, respectively.
Although date and time aren’t data types in Python, a module called datetime is imported to work with both the date and the time. There is no need to install the Python Datetime module outside because it is included in Python.
The Python Datetime package provides classes for manipulating dates and times. These classes offer a variety of capabilities for working with dates, times, and time intervals. In Python, date and datetime are objects, so you’re altering objects rather than strings or timestamps when you manipulate them.