Python Guide Sidebar

Python – Date & Time

This Python date and time tutorial will introduce you to Python’s powerful tools for working with dates and times, enabling developers to perform a variety of operations such as formatting, parsing, and arithmetic. The built-in datetime module is particularly powerful, providing a comprehensive suite of functionalities to handle time-related tasks efficiently. In this article, we explore Python’s date and time capabilities with practical examples and best practices.

1. Introduction to the datetime Module

The datetime module is Python’s primary library for manipulating dates and times. It offers classes like date, time, datetime, and timedelta, each tailored for specific use cases.

Example:

import datetime

current_datetime = datetime.datetime.now()
print("Current Date and Time:", current_datetime)

Key Features:

  • Fetch the current date and time.
  • Perform arithmetic on dates and times.
  • Parse and format date/time strings.
2. Working with Dates

The date class represents a calendar date (year, month, and day). It’s useful when dealing with operations specific to dates without considering time.

Example:

from datetime import date

today = date.today()
print("Today's Date:", today)

Common Attributes:

  • year: Returns the year.
  • month: Returns the month.
  • day: Returns the day.

Example:

print("Year:", today.year)
print("Month:", today.month)
print("Day:", today.day)
3. Working with Time

The time class handles time values (hours, minutes, seconds, and microseconds) without associating them with any particular date.

Example:

from datetime import time

current_time = time(14, 30, 45)
print("Current Time:", current_time)

Attributes of time:

  • hour: Returns the hour.
  • minute: Returns the minute.
  • second: Returns the second.
  • microsecond: Returns the microsecond.
4. The datetime Class

The datetime class combines both date and time. It’s highly versatile and allows you to perform advanced operations, such as adding or subtracting days or seconds.

Example:

from datetime import datetime

now = datetime.now()
print("Current Date and Time:", now)
Parsing and Formatting Dates:

The strftime and strptime methods help format and parse date/time objects.

Formatting:
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print("Formatted Date:", formatted_date)
Parsing:
parsed_date = datetime.strptime("2025-01-01", "%Y-%m-%d")
print("Parsed Date:", parsed_date)
5. Date Arithmetic with timedelta

The timedelta class is used to perform arithmetic operations on dates and times. You can add or subtract days, hours, minutes, etc., with ease.

Example:

from datetime import timedelta

yesterday = now - timedelta(days=1)
tomorrow = now + timedelta(days=1)
print("Yesterday:", yesterday)
print("Tomorrow:", tomorrow)
6. Handling Time Zones

Python’s pytz module works alongside datetime to manage time zones effectively. It allows you to convert between different time zones and handle daylight saving time (DST).

Example:

from datetime import datetime
import pytz

utc = pytz.utc
local_tz = pytz.timezone("Asia/Kolkata")

utc_time = datetime.now(utc)
local_time = utc_time.astimezone(local_tz)
print("UTC Time:", utc_time)
print("Local Time:", local_time)
7. Best Practices for Working with Dates and Times
  • Always use time zones to ensure consistency across different regions.
  • Format dates and times for readability in user interfaces.
  • Use timedelta for date arithmetic instead of manual calculations.
  • Leverage the datetime module’s parsing capabilities to handle various date formats.
List of Date Class Methods

The date class in the datetime module comes with numerous methods to simplify date-related operations. Below is a comprehensive list of these methods and their descriptions:

Function NameDescription
ctime()Returns a string representing the date
fromisocalendar()Returns a date corresponding to the ISO calendar
fromisoformat()Returns a date object from the string representation of the date
fromordinal()Returns a date object from the proleptic Gregorian ordinal, where January 1 of year 1 has ordinal 1
fromtimestamp()Returns a date object from the POSIX timestamp
isocalendar()Returns a tuple containing year, week, and weekday
isoformat()Returns the string representation of the date
isoweekday()Returns the day of the week as an integer (Monday = 1, Sunday = 7)
replace()Changes the value of the date object with the given parameter
strftime()Returns a string representation of the date with the given format
timetuple()Returns an object of type time.struct_time
today()Returns the current local date
toordinal()Returns the proleptic Gregorian ordinal of the date, where January 1 of year 1 has ordinal 1
weekday()Returns the day of the week as an integer (Monday = 0, Sunday = 6)
Conclusion

Python’s date and time functionalities, centered around the datetime module, offer powerful tools for handling a wide range of time-related tasks. Whether you need to work with time zones, format dates, or perform date arithmetic, Python simplifies these operations. Mastering these features ensures you can handle any date/time requirement with confidence and efficiency.


Interview Questions

1. What is the datetime module in Python, and why is it used? (Google)

The datetime module is a built-in Python library used for handling date and time operations. It provides classes like datetimedatetime, and timedelta to work with dates, times, and intervals.

2.How can you format a date in Python using strftime? (Amazon)

The strftime method is used to format date objects into readable strings.

Explanation:

  • %d – Day of the month.
  • %m – Month.
  • %Y – Year.
  • %H – Hour.
  • %M – Minute.
  • %S – Second.

3.What is the use of the fromtimestamp() method in the date class? (META)

The fromtimestamp() method creates a date object from a POSIX timestamp (seconds since the Unix epoch).

4.Explain the difference between isoformat() and strftime() in Python.? (Tesla)

isoformat() returns the date or datetime in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS).

strftime() allows you to format the date or datetime into custom formats using format codes.

5.What is the purpose of the datetime module in Python? (IBM)

The datetime module in Python is used for working with dates and times. It provides classes for manipulating date and time objects, such as date, time, datetime, and timedelta. It supports various operations like formatting, arithmetic, and time zone handling.


Learn about arrays and official date and time

Lets play : Date & Time