The datetime module in Python is part of the standard library and provides classes for manipulating dates and times. With its powerful set of features, it allows you to perform various operations such as comparing dates, formatting time, arithmetic with dates, and much more. This tutorial aims to provide an in-depth guide to Python’s datetime module.
Before using the datetime module, you need to import it:
import datetime
Alternatively, you can import individual classes like:
from datetime import date, time, datetime, timedelta
The module provides several important classes:
This class represents a date (year, month, and day).
from datetime import date
d = date(2025, 6, 27)
print(d)
today = date.today()
print(today.year)
print(today.month)
print(today.day)
print(date.today()) # Current date
print(date.fromisoformat('2025-06-27')) # Create from ISO format
print(date.max) # Max date
print(date.min) # Min date
Represents a time (hour, minute, second, microsecond).
from datetime import time
t = time(14, 30, 45)
print(t)
print(t.hour)
print(t.minute)
print(t.second)
print(t.microsecond)
This is a combination of date and time in one object.
from datetime import datetime
dt = datetime(2025, 6, 27, 14, 30, 0)
print(dt)
print(datetime.now()) # Current local date and time
print(datetime.utcnow()) # Current UTC date and time
print(datetime.today()) # Same as now()
dt = datetime.now()
print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)
print(dt.isoformat())
Represents the difference between two datetime or date objects.
from datetime import timedelta
delta = timedelta(days=10, hours=5)
print(delta)
today = datetime.now()
future = today + timedelta(days=10)
past = today - timedelta(days=10)
print("10 days in future:", future)
print("10 days in past:", past)
now = datetime.now()
print("Now:", now)
dt = datetime(2025, 6, 27, 15, 0, 0)
print("Specific:", dt)
date_str = '2025-06-27 14:00:00'
dt = datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S')
print(dt)
now = datetime.now()
formatted = now.strftime('%Y-%m-%d %H:%M:%S')
print("Formatted:", formatted)
from datetime import datetime, timedelta
event_time = datetime(2025, 7, 1, 12, 0, 0)
now = datetime.now()
remaining = event_time - now
print("Time remaining:", remaining)
birth_date = date(1995, 6, 27)
today = date.today()
age = today.year - birth_date.year - ((today.month, today.day) < (birth_date.month, birth_date.day))
print("Age:", age)
today = date.today()
future_date = today + timedelta(days=30)
print("30 days later:", future_date)
d1 = date(2025, 6, 25)
d2 = date(2025, 6, 27)
print(d1 < d2)
print(d1 == d2)
print(d1 > d2)
To handle timezones, Python provides timezone and pytz (external module).
from datetime import datetime, timezone, timedelta
utc_dt = datetime.now(timezone.utc)
print("UTC Time:", utc_dt)
ist = timezone(timedelta(hours=5, minutes=30))
ist_dt = utc_dt.astimezone(ist)
print("IST Time:", ist_dt)
For advanced timezone support, install pytz:
pip install pytz
from datetime import datetime
import pytz
utc = pytz.utc
ist = pytz.timezone('Asia/Kolkata')
dt_utc = datetime.now(utc)
dt_ist = dt_utc.astimezone(ist)
print("UTC Time:", dt_utc)
print("IST Time:", dt_ist)
import time
from datetime import datetime
start = datetime.now()
time.sleep(2)
end = datetime.now()
elapsed = end - start
print("Elapsed Time:", elapsed)
now = datetime.now()
new_time = now.replace(hour=18, minute=0)
print("Replaced:", new_time)
dates = [
datetime(2025, 6, 25),
datetime(2025, 6, 27),
datetime(2025, 6, 20)
]
dates.sort()
for d in dates:
print(d)
start_date = date(2025, 6, 1)
for i in range(5):
recurring = start_date + timedelta(weeks=i)
print(recurring)
today = date.today()
print("Weekday (0=Mon):", today.weekday())
print("ISO Weekday (1=Mon):", today.isoweekday())
dt = datetime(2025, 6, 27)
week_number = dt.isocalendar().week
print("Week number:", week_number)
The Python datetime module is a rich and flexible library for working with dates and times. Whether you are building calendars, timestamping data, or doing time zone conversion, datetime has got you covered. By understanding the core classes such as date, time, datetime, and timedelta, you can handle most common and complex time-related requirements in Python projects. Incorporating timezone handling via pytz further elevates your application’s capability to deal with international time standards effectively.
Mastering this module is essential for any Python developer working on real-world applications, scheduling systems, logs, analytics, or data pipelines. With a structured approach and hands-on practice, datetime can significantly simplify your temporal programming needs.
Python is commonly used for developing websites and software, task automation, data analysis, and data visualisation. Since it's relatively easy to learn, Python has been adopted by many non-programmers, such as accountants and scientists, for a variety of everyday tasks, like organising finances.
Learning Curve: Python is generally considered easier to learn for beginners due to its simplicity, while Java is more complex but provides a deeper understanding of how programming works.
The point is that Java is more complicated to learn than Python. It doesn't matter the order. You will have to do some things in Java that you don't in Python. The general programming skills you learn from using either language will transfer to another.
Read on for tips on how to maximize your learning. In general, it takes around two to six months to learn the fundamentals of Python. But you can learn enough to write your first short program in a matter of minutes. Developing mastery of Python's vast array of libraries can take months or years.
6 Top Tips for Learning Python
The following is a step-by-step guide for beginners interested in learning Python using Windows.
Best YouTube Channels to Learn Python
Write your first Python programStart by writing a simple Python program, such as a classic "Hello, World!" script. This process will help you understand the syntax and structure of Python code.
The average salary for Python Developer is ₹5,55,000 per year in the India. The average additional cash compensation for a Python Developer is within a range from ₹3,000 - ₹1,20,000.
Copyrights © 2024 letsupdateskills All rights reserved