Skip to main content
Home

Main navigation

  • Home
  • Latest Articles

Date and Time Manipulation

Breadcrumb

  • Home
  • Date and Time Manipulation

Table of Contents

Table of contents
By prateek | Mon December 02, 2024

Introduction to datetime module in Python

Hello. You're in for a treat if you're learning Python and have to sort some date and time information! Python includes an incredible built-in module named datetime. The best component is It's ready-to-roll straight out of the box; you don't have to install anything more to utilize it!

Now, the datetime module's ability to manage dates and times in nearly any manner you would want makes it very awesome. For a given day, what day of the week would you like know? Alternatively find out how many days remain till your next birthday. Not an issue at all! You can benefit from all that and more as well.

Main characteristics of the datetime module:

  • It is loaded with several types each meant for different date and time operations.
  • Classes cover date, time, datetime, timedelta, tzinfo, and time zone.
  • Every class has tools and features specifically designed to simplify your date-time handling.
  • The date class, for instance, will enable you address dates emphasizing year, month, and day. The time class lets you handle time free from concern about the related day. Ask for the entire date and time package. The datetime class excels in this regard.

These classes will allow us to get close and personal in the portions to follow. We'll look at just how strong and flexible the datetime module is for Python's date and time handling taken together. Let us so get ready and start right away.

Understanding Date, Time, and DateTime Classes

Alrighty, let's discuss some of the major Python datetime module players: date, time, and datetime. These fellas include special tools and techniques for managing all aspects date and time.

The Date Class:

  • This workshop is entirely focused on the date itself—that is, yep, exactly; no time is involved here!
  • It emphasizes only year, month, and day.

You may make a date like this:

from datetime import date
d = date(2022, 1, 1)
print(d)

Here we are including the date class and creating a New Year's Day date object for 2022. Cool, right? You will see "2022-01-01" flash up when you push print.

The Time Class:

  • This one leaves the date behind; its only focus is time.
  • If you work with hours, minutes, seconds, microseconds, or even time zone information, you can do it here.

View this sample of establishing a time:

from datetime import time
t = time(13, 20, 1)
print(t)

Here we have created a time object for 1:20:01 PM. Print that and "13:20:01" will be your return from Python!

The DateTime Class:

  • This class aggregates the finest pieces of time and date.
  • Your go-to for handling both simultaneously is rather convenient.

Here's a basic demonstration of building a datetime object:

from datetime import datetime
dt = datetime(2022, 1, 1, 13, 20, 1)
print(dt)

This bit lets us create a January 1, 2022 datetime at 1:20:01 PM. Print it and straight away you'll notice "2022-01-01 13:20:01".

Stay around; next we will be delving further into how to use these classes for all your date and time requirements!

Creating Date, Time and DateTime Objects

Let's address Python's creation of the date, time, and datetime objects. Actually, it's quite basic. All you have to do is call the correct class using the correct specifics. Allow me to dissect it here.

Creating a Date Object:

  • A date object calls for the year, the month, and the day. That summarizes it.

You should follow these guidelines:

from datetime import date
d = date(2022, 12, 31)
print(d)  # Output: 2022-12-31

Here in this clever bit of code, we are creating a date object for December 31st, the last day of 2022.

Creating a Time Object:

  • If you're feeling extra, toss in the hour, minute, second, and even microsecond for a time object! However, guess what? All of them are optional; skipping any one will simply zero out.

Examine this:

from datetime import time
t = time(13, 45, 30)
print(t)  # Output: 13:45:30

Here we created a time object reflecting 1:45:30 in the afternoon.

Creating a DateTime Object:

  • Now you create a datetime object if you wish to mix date and time. Just chuck in your date information (year, month, day) and your time bits (hour, minute, second, microsecond). Usually, time components can be omitted; they will default to zero.

Check out this:

from datetime import datetime
dt = datetime(2022, 12, 31, 13, 45, 30)
print(dt)  # Output: 2022-12-31 13:45:30

This arrangement allows us to create a datetime object for 1:45:30, the last afternoon of 2022.

You are right there! These are your fundamental Python date, time, and datetime object building techniques. We will then explore the interesting things you can accomplish with these tools. Stay tuned!

Formatting and Parsing Dates and Times with strftime and strptime

Using strftime() and strptime() from the datetime module, let's explore how exactly your dates and times look. Super great, right? These simple techniques can translate dates and times into strings and vice versa—very cool.

Using strftime() for formatting:

  • Using the format you choose, strftime() converts your date, time, or datetime object into a string.

Here is the scoop accompanied with a sample:

from datetime import datetime
dt = datetime(2022, 12, 31, 13, 45, 30)
formatted_dt = dt.strftime("%A, %d %B %Y %I:%M:%S %p")
print(formatted_dt)  # Output: Friday, 31 December 2022 01:45:30 PM

Here we are treating a datetime object we have taken as a string. From the whole weekday and month names to the time in a 12-hour clock with AM/PM, the format "%A, %d %B %Y %I:%M:%S %p" spokes out. Pretty, right?

Using strptime() for Parsing:

  • Strptime() reads a string and, using your defined format, turns it into a date, time, or datetime object—the reverse action.

As seen here in action:

from datetime import datetime
dt_string = "31-12-2022 13:45:30"
dt = datetime.strptime(dt_string, "%d-%m-%Y %H:%M:%S")
print(dt)  # Output: 2022-12-31 13:45:30

We are parsing a string denoting a date and time here into a datetime object. It has all the signals it need to determine which numbers belong for the day, month, year, and time thanks to the format "%d-%m-%Y %H:%M:%S".

These two techniques enable you to easily transition between date and time objects and strings, so displaying things how you choose and reading them in, regardless of their formatting.

Working with Timedelta Objects

Let us explore Python's timedelta objects, which are quite useful for expressing time variations or durations. Timedelta is your friend whether you're scheduling ahead or trying to find the difference between two dates.

Creating a Timedelta Object:

  • Days, seconds, microseconds, milliseconds, minutes, hours, or even weeks will let you create a timedelta.

Here's how to create one:

from datetime import timedelta

delta = timedelta(days=7, hours=2, minutes=30)
print(delta)  # Output: 7 days, 2:30:00

Here we are building a timedelta for 7 days, 2 hours, and 30 minutes. Simple lunch!

Doing Math with Timedelta:

  • timedelta objects let you perform all kinds of arithmetic—add, subtract, multiply, even divide!

See this as an illustration:

from datetime utilizing timedelta

delta1 = timedelta(days=7, hours=2, minutes=30)
delta2 = timedelta(days=5, hours=1, minutes=15)

result = delta1 - delta2
print(result)  # Output: 2 days, 1:15:00

Here we are subtracting one timedelta from another to produce a fresh timedelta of 2 days and 1 hour, 15 minutes.

Whether you're figuring out a future date or determining how long an event lasts, timedelta objects help with all kinds of date and time adjustments. Try it the next time your working with time!

Real-world Applications of Date and Time Manipulation in Python

Python offers several useful applications to help you in the real world with regard to using date and time. Let's examine some of our daily digital tools and chores where date and time manipulation powers them.

Scheduling Applications:

Ever wonder how programs like Google Calendar and Microsoft Outlook remember appointments? They depend on changing date and time to schedule activities, remind you, and maintain your calendar in balance.

Data Analysis:

Should you be delving into the field of data analysis, time-series data will typically be involved. Calculate average daily temperatures, nail down the day with most site traffic, or arrange sales data month by month.

Log Analysis:

On logs, timestamps allow study of them with some creative date and time manipulation. You might have to find records inside specified timesframes or monitor the developing times of events.

E-commerce Applications:

In the world of online buying, date and time are vitally essential for tracking order times, computing delivery projections, and even timing special offers to attract consumers.

In the context of data analysis, let's consider an instance:

from datetime import datetime, timedelta

# List of timestamps when a website was visited
visit_timestamps = [
   datetime(2022, 12, 31, 13, 45, 30),
   datetime(2022, 12, 31, 14, 15, 45),
   datetime(2022, 12, 31, 15, 30, 15),
   # ...
]

# Calculate the time difference between the first and last visit
first_visit = min(visit_timestamps)
last_visit = max(visit_timestamps)
visit_duration = last_visit - first_visit

print(visit_duration)  # Output: 1:44:45

Here we are deducing a user's website lifetime by examining the differences between their first and last visit. Though it's a simple example, it shows how precise date and time modification may allow one to study genuine occurrences and data. So take your tools and start adding date and time into your programs!

PreviousNext

Python Syllabus

  • Python Control Flow
    • Python If Statement
    • Python else Statements
    • Python elif Statements
    • Python for Loops
    • Python while Loops
    • Python iterators and iterables
    • Python Comprehensions
    • Conditional List Comprehensions in Python
    • Conditional Dictionary Comprehensions in Python
    • Set Comprehensions in Python
    • Generator Expressions in python
    • Generator Functions in Python
    • Python Yield Statement
  • Functions and Functional Programming
    • Function Syntax in Python
    • Function Parameters in Python
    • Function Arguments in Python
    • Arguments and Return Values
    • Positional Arguments
    • Keyword Arguments
    • Python Default Arguments
    • Returning Values in Python
    • Function Decorators
    • Generator Functions
    • Yield Statement
    • Lambda Functions: Syntax and Usage
    • Lambda with Built-in Functions
    • Functions as First-Class Citizens
    • Passing Functions as Arguments
    • Returning Functions from Functions
  • Python's Object-Oriented Programming
    • Classes and Objects
    • Attributes and Methods
    • Class vs. Instance Attributes
    • Creating Instances in Python
    • Constructors and Initialization in Python
    • Python Destructors
    • Accessing Instance Variables
    • Calling Instance Methods
    • Inheritance and Polymorphism
    • Base and Derived Classes
    • Method Overriding
    • Polymorphism
    • Constructor (__init__)
    • Destructor
    • String Representation
    • Comparison Methods
    • Using Decorators to Modify Classes
  • Exceptions and Error Handling
    • Basic and Custom Exceptions
    • Subclassing Built-in Exceptions
    • Handling Exceptions
    • Multiple except Blocks
    • else and finally Clauses
    • Using else and finally Blocks
    • with Statement
    • Defining __enter__ and __exit__ Methods
    • Using Contextlib for Context Management
  • Python's Standard Library
    • Overview of Key Modules
    • os Module
    • System-specific Parameters and Functions
    • Date and Time Manipulation
    • Random Number Generation
    • Mathematical Functions
    • JSON Data Serialization and Deserialization
    • Regular Expression Operations
    • Additional Data Structures
    • Higher-Order Functions and Operations
    • Object Serialization
  • Python for Web and Internet
    • Python Web Scraping
    • HTML Parsing
    • Navigating the DOM
    • Selenium
    • Web Automation
    • MVC Architecture
    • URL Routing
    • ORM (Object-Relational Mapping)
    • Template Engine
    • Lightweight Web Framework
    • Routing
    • Extensions
    • API Interactions
    • Sending HTTP Requests
    • Authentication
  • Python for Data Science
    • Data Manipulation
    • Data Structures
    • Data Cleaning and Preprocessing
    • Data Manipulation (Filtering, Sorting, Grouping)
    • Arrays and Matrix Operations
    • Mathematical Functions
    • Linear Algebra Operations
    • Data Visualization
    • Basic Plotting
    • Subplots
    • Statistical Visualization
    • Styling and Aesthetics
    • Pair Plots and Heatmaps
    • Statistical Analysis
    • Statistical Functions
    • Probability Distributions
    • Machine Learning
    • Deep Learning Framework
    • Neural Network Building
    • Dynamic Computational Graphs
  • Advanced Python Features
    • asyncio
    • Metaclasses
    • Type Hints
  • Job and Career Opportunities
    • Python and its Relevance in the Job Market
    • Python in Web Development: Career Prospects
    • Python in Back-End Development: Job Opportunities
    • Python in Cloud Computing: Future Scope
    • Python in Network Programming: Career Prospects
    • Python in Data Processing: Career Growth
    • Python in Machine Learning: Job Roles
    • Python in Security Software Development: Career Prospects

Footer menu

  • Contact

Copyright © 2024 GyataAI - All rights reserved

GyataAI