Python Date Time With Advanced Examples

This article entitle Python Date Time is a continuation of the previous article entitled Python Dictionary.

Python DateTime is a module that can be used on working with dates and times. This module provides different classes for the representation and manipulation of dates and times and for parsing and formatting dates and times into different formats.

How to get date time in Python?

The DateTime module can be used to get the current date and time in Python and with the use of datetime.now() function for creating a DateTime object that contains the current DateTime.

Example

import datetime

# get the current date and time
datetimenow = datetime.datetime.now()

print(datetimenow)

Output

2022-12-28 01:49:45.845737

How to get the current Date in Python?

To get the current date we have to use the method name today() which is defined on the date class to get the dates object that contains the local current date.

Example

import datetime

# get current date
currentDate = datetime.date.today()

print(currentDate)

Output

2022-12-28

How to get all the attributes of datetime module?

To get the list of all attributes of datetime module we can use the dir() function.

Example

import datetime

print(dir(datetime))

Output

['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo']

The following lists are the most commonly used classes of the datetime module.

  • datetime.time – This function represents the date (year, month, and day) without the time.
  • datetime.time – This function represents the time (hour, minute, second, and microsecond) without the date.
  • datetime.datetime – This function represents a single point in time, which also includes the date and time.
  • datetime.timedelta – This function represents the duration that can be used to perform arithmetic with datetime objects.

datetime.date class in Python

We can get the date objects from a date class in Python and the date objects will represent the date (year, month, and day).

Date object to represent a date in Python

The date() is the constructor of the local date class and these constructors get the three arguments such as the year, month, and day.

Example

import datetime

date = datetime.date(2022, 12, 28)
print(date)

Output

2022-12-28

Import only the date class in Python

In Python, we can import only a date class from the module name datetime.

Example

from datetime import date

date = date(2022, 12, 28)
print(date)

Output

2022-12-28

How to get the current date using today() function in Python

The today() method is most commonly used to get the current date and print today.

Example

from datetime import date

# today() to get current date
todaysDate = date.today()

print("Date today =", todaysDate)

Output

Date today = 2022-12-28

How to get the date from a timestamp in Python

The timestamp is also used to create date objects, further, a UNIX timestamp is a number of seconds that is between the particular date and January 1, 1970, at UTC and you can convert the timestamp to the date with the use of the method named fromtimestamp().

Example

from datetime import date

timestamp = date.fromtimestamp(1326244364)
print("Date =", timestamp)

Output

Date = 2012-01-11

How to print the current year, month, and day in Python

To get the current year, month, and day from the given date object can be done simply.

Example

from datetime import date

# date object of today's date
today = date.today() 

print("The current year is", today.year)
print("The current month is", today.month)
print("The current day is", today.day)

Output

The current year is 2022
The current month is 12
The current day is 28

datetime.time class in Python

The time object is instantiated from a time module class that represents the local time zone.

Object time to represent a time

Example

from datetime import time

# time(hour = 0, minute = 0, second = 0)
timeA = time()
print(timeA)

# time(hour, minute and second)
timeB = time(12, 24, 16)
print(timeB)

# time(hour, minute and second)
timeC = time(hour = 10, minute = 45, second = 16)
print(timeC)

# time(hour, minute, second, microsecond)
timeD = time(10, 45, 16, 234566)
print(timeD)

Output

00:00:00
12:24:16
10:45:16
10:45:16.234566

Display hour, minute, second, and microsecond

For instance, if we want to create a time object we can easily display all the attributes such as an hour, minute, and second.

Example

from datetime import time

t = time(10, 23, 43)

print("Hour =", t.hour)
print("Minute =", t.minute)
print("Second =", t.second)
print("Microsecond =", t.microsecond)

Output

Hour = 10
Minute = 23
Second = 43
Microsecond = 0

datetime.datetime class in Python

The datetime module has also a class named datetime which contains all the information about the object’s date and time interval.

datetime object in Python

The following program takes the first three arguments year, month, and day in the function datetime() and the constructor is mandatory.

Example

from datetime import datetime

# datetime(year, month, day)
timeA = datetime(2022, 12, 28)
print(timeA)

# datetime(year, month, day, hour, minute, second, microsecond)
timeB = datetime(2022, 12, 28, 23, 55, 59, 342380)
print(timeB)

Output

2022-12-28 00:00:00
2022-12-28 23:55:59.342380

Display year, month, hour, minute, and timestamp

Example

from datetime import datetime

dateTime = datetime(2022, 12, 28, 12, 30, 59, 342380)

print("Year =", dateTime.year)
print("Month =", dateTime.month)
print("Hour =", dateTime.hour)
print("Minute =", dateTime.minute)
print("Timestamp =", dateTime.timestamp())

Output

Year = 2022
Month = 12
Hour = 12
Minute = 30
Timestamp = 1672230659.34238

datetime.timedelta class in Python

A timedelta is an object that represents the difference between the two dates and times.

Example

from datetime import datetime, date

# using date()
time1 = date(year = 2022, month = 12, day = 28)
time2 = date(year = 2021, month = 10, day = 15)

time3 = time1 - time2

print("time3 =", time3)

# using datetime()
time4 = datetime(year = 2022, month = 12, day = 28, hour = 8, minute = 19, second = 24)
time5 = datetime(year = 2021, month = 3, day = 7, hour = 4, minute = 34, second = 23)
time6 = time4 - time5
print("time6 =", time6)

print("Type of time3 =", type(time3)) 
print("Type of time6 =", type(time6))  

Output

time3 = 439 days, 0:00:00
time6 = 661 days, 3:45:01
Type of time3 = <class 'datetime.timedelta'>
Type of time6 = <class 'datetime.timedelta'>

Difference between two timedelta objects in Python

Example

from datetime import timedelta

time1 = timedelta(weeks = 3, days = 6, hours = 2, seconds = 22)
time2 = timedelta(days = 2, hours = 5, minutes = 3, seconds = 34)

time3 = time1 - time2

print("time3 =", time3)

Output

time3 = 24 days, 20:56:48

Time duration in seconds in Python

The total_seconds() is a method that can get the total number of seconds in the object timedelta.

Example

from datetime import timedelta

time = timedelta(days = 6, hours = 3, seconds = 22, microseconds = 434343)
print("Total seconds =", time.total_seconds())

Output

Total seconds = 529222.434343

Format datetime in Python

The date and time are a way that is represented in different places, organizations, and so on. The most common use date and time format is mm/dd/yyyy in the United States while in the United Kingdom is dd/mm/yyyy.

  • strftime()
  • strptime()

strftime() method in Python

The strftime() is a method that is defined under the class date, time, and datetime. This method creates a string formatted from the date given object datetime or time.

Example

from datetime import datetime

# current date and time
now = datetime.now()

time = now.strftime("%H:%M:%S")
print("Time:", time)

strf1 = now.strftime("%m/%d/%Y, %H:%M:%S")
# mm/dd/YY H:M:S format
print("String Format One:", strf1)

strf2 = now.strftime("%d/%m/%Y, %H:%M:%S")
# dd/mm/YY H:M:S format
print("String Format Two:", strf2)

Output

Time: 06:44:27
String Format One: 12/28/2022, 06:44:27
String Format Two: 28/12/2022, 06:44:27

strptime() method in Python

The strptime() is a method that can be used to create an object datetime from a string given that represents date and time.

Example

from datetime import datetime

stringDate = "28 December, 2022"
print("stringDate =", stringDate)

# use strptime() to create date object
objectDate = datetime.strptime(stringDate, "%d %B, %Y")

print("objectDate =", objectDate)

Output

stringDate = 28 December, 2022
objectDate = 2022-12-28 00:00:00

Python handling timezone

For instance that we are working on a project and we need to display the date and time that is based on their timezone.

Example

from datetime import datetime
import pytz

local = datetime.now()
print("Local:", local.strftime("%m/%d/%Y, %H:%M:%S"))


us = pytz.timezone('America/New_York') 
datetimeUs = datetime.now(us)
print("New York:", datetimeUs.strftime("%m/%d/%Y, %H:%M:%S"))

uk = pytz.timezone('Europe/London')
datetimeUk = datetime.now(uk)
print("London:", datetimeUk.strftime("%m/%d/%Y, %H:%M:%S"))

Output

Local: 12/28/2022, 06:58:39
New York: 12/28/2022, 01:58:39
London: 12/28/2022, 06:58:39

Summary

In summary, you have read about Python Date Time. We also discussed in this article how to get date time in Python, how to get the current date, how to get all the attributes of datetime module, datetime.date class.

Along with is datetime object, display year, month, hour, minute, and timestamp, datetime.timedelta class, difference between two timedelta objects, time duration in seconds, and handling timezone.

I hope this article could help you a lot to continue pursuing learning this powerful programming language.

If you want to learn more check out my previous and latest articles for more career-changing articles.

Leave a Comment