Python Training , study and exam guide
1 Introduction to Python
1.1 What is Python?
1.2 History of Python
1.3 Features of Python
1.4 Python Applications
1.5 Setting up the Python Environment
1.6 Running Your First Python Program
2 Python Basics
2.1 Python Syntax and Indentation
2.2 Variables and Data Types
2.2 1 Numbers
2.2 2 Strings
2.2 3 Lists
2.2 4 Tuples
2.2 5 Sets
2.2 6 Dictionaries
2.3 Operators
2.3 1 Arithmetic Operators
2.3 2 Comparison Operators
2.3 3 Logical Operators
2.3 4 Assignment Operators
2.3 5 Membership Operators
2.3 6 Identity Operators
2.4 Input and Output
2.4 1 Input Function
2.4 2 Output Function
2.5 Comments
2.5 1 Single-line Comments
2.5 2 Multi-line Comments
3 Control Flow
3.1 Conditional Statements
3.1 1 If Statement
3.1 2 If-Else Statement
3.1 3 Elif Statement
3.1 4 Nested If Statements
3.2 Loops
3.2 1 For Loop
3.2 2 While Loop
3.2 3 Nested Loops
3.3 Loop Control Statements
3.3 1 Break Statement
3.3 2 Continue Statement
3.3 3 Pass Statement
4 Functions
4.1 Defining Functions
4.2 Function Arguments
4.2 1 Positional Arguments
4.2 2 Keyword Arguments
4.2 3 Default Arguments
4.2 4 Variable-length Arguments
4.3 Return Statement
4.4 Lambda Functions
4.5 Scope of Variables
4.5 1 Local Variables
4.5 2 Global Variables
4.6 Recursion
5 Data Structures
5.1 Lists
5.1 1 List Operations
5.1 2 List Methods
5.1 3 List Comprehensions
5.2 Tuples
5.2 1 Tuple Operations
5.2 2 Tuple Methods
5.3 Sets
5.3 1 Set Operations
5.3 2 Set Methods
5.4 Dictionaries
5.4 1 Dictionary Operations
5.4 2 Dictionary Methods
5.5 Advanced Data Structures
5.5 1 Stacks
5.5 2 Queues
5.5 3 Linked Lists
6 Modules and Packages
6.1 Importing Modules
6.2 Creating Modules
6.3 Standard Library Modules
6.3 1 Math Module
6.3 2 Random Module
6.3 3 DateTime Module
6.4 Creating Packages
6.5 Installing External Packages
7 File Handling
7.1 Opening and Closing Files
7.2 Reading from Files
7.2 1 read()
7.2 2 readline()
7.2 3 readlines()
7.3 Writing to Files
7.3 1 write()
7.3 2 writelines()
7.4 File Modes
7.5 Working with CSV Files
7.6 Working with JSON Files
8 Exception Handling
8.1 Try and Except Blocks
8.2 Handling Multiple Exceptions
8.3 Finally Block
8.4 Raising Exceptions
8.5 Custom Exceptions
9 Object-Oriented Programming (OOP)
9.1 Classes and Objects
9.2 Attributes and Methods
9.3 Constructors and Destructors
9.4 Inheritance
9.4 1 Single Inheritance
9.4 2 Multiple Inheritance
9.4 3 Multilevel Inheritance
9.5 Polymorphism
9.6 Encapsulation
9.7 Abstraction
10 Working with Libraries
10.1 NumPy
10.1 1 Introduction to NumPy
10.1 2 Creating NumPy Arrays
10.1 3 Array Operations
10.2 Pandas
10.2 1 Introduction to Pandas
10.2 2 DataFrames and Series
10.2 3 Data Manipulation
10.3 Matplotlib
10.3 1 Introduction to Matplotlib
10.3 2 Plotting Graphs
10.3 3 Customizing Plots
10.4 Scikit-learn
10.4 1 Introduction to Scikit-learn
10.4 2 Machine Learning Basics
10.4 3 Model Training and Evaluation
11 Web Development with Python
11.1 Introduction to Web Development
11.2 Flask Framework
11.2 1 Setting Up Flask
11.2 2 Routing
11.2 3 Templates
11.2 4 Forms and Validation
11.3 Django Framework
11.3 1 Setting Up Django
11.3 2 Models and Databases
11.3 3 Views and Templates
11.3 4 Forms and Authentication
12 Final Exam Preparation
12.1 Review of Key Concepts
12.2 Practice Questions
12.3 Mock Exams
12.4 Exam Tips and Strategies
6 3 3 DateTime Module Explained

6 3 3 DateTime Module Explained

Key Concepts

The DateTime module in Python provides classes for manipulating dates and times. The key concepts include:

1. Date and Time Objects

The DateTime module provides several classes to represent dates and times:

Example:

from datetime import date, time, datetime, timedelta

# Date object
today = date.today()
print(today)  # Output: YYYY-MM-DD

# Time object
current_time = time(14, 30, 0)
print(current_time)  # Output: 14:30:00

# Datetime object
now = datetime.now()
print(now)  # Output: YYYY-MM-DD HH:MM:SS.microseconds

# Timedelta object
delta = timedelta(days=5, hours=3)
print(delta)  # Output: 5 days, 3:00:00
    

2. Formatting Dates and Times

You can format dates and times using the strftime() method, which converts a datetime object to a string according to a specified format.

Example:

from datetime import datetime

now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)  # Output: YYYY-MM-DD HH:MM:SS
    

Analogy: Think of formatting dates and times like customizing the appearance of a document, where you choose how the date and time should be displayed.

3. Time Zones

The DateTime module supports time zones through the pytz library. This allows you to work with dates and times in different time zones.

Example:

from datetime import datetime
import pytz

# Current time in UTC
utc_now = datetime.now(pytz.utc)
print(utc_now)  # Output: YYYY-MM-DD HH:MM:SS.microseconds+00:00

# Convert to another time zone
eastern = pytz.timezone('US/Eastern')
eastern_now = utc_now.astimezone(eastern)
print(eastern_now)  # Output: YYYY-MM-DD HH:MM:SS.microseconds-04:00
    

Analogy: Think of time zones as different locations on Earth, each with its own local time.

4. Arithmetic Operations with Dates

You can perform arithmetic operations with dates using the timedelta class. This allows you to add or subtract days, hours, minutes, etc., from a date or time.

Example:

from datetime import datetime, timedelta

now = datetime.now()
future_date = now + timedelta(days=7)
print(future_date)  # Output: YYYY-MM-DD HH:MM:SS.microseconds

past_date = now - timedelta(hours=3)
print(past_date)  # Output: YYYY-MM-DD HH:MM:SS.microseconds
    

Analogy: Think of arithmetic operations with dates like adding or subtracting time from a clock, where you move the hands forward or backward.

5. Parsing and Formatting Dates

You can parse a string into a datetime object using the strptime() method, and format a datetime object into a string using the strftime() method.

Example:

from datetime import datetime

# Parsing a string into a datetime object
date_str = "2023-10-05 14:30:00"
date_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(date_obj)  # Output: 2023-10-05 14:30:00

# Formatting a datetime object into a string
formatted_date = date_obj.strftime("%B %d, %Y %I:%M %p")
print(formatted_date)  # Output: October 05, 2023 02:30 PM
    

Analogy: Think of parsing and formatting dates like translating between different languages, where you convert dates from one format to another.

Putting It All Together

By understanding and using the DateTime module effectively, you can manipulate dates and times in various formats and time zones, perform arithmetic operations, and parse and format dates as needed.

Example:

from datetime import datetime, timedelta
import pytz

# Current time in UTC
utc_now = datetime.now(pytz.utc)
print(utc_now)  # Output: YYYY-MM-DD HH:MM:SS.microseconds+00:00

# Convert to another time zone
eastern = pytz.timezone('US/Eastern')
eastern_now = utc_now.astimezone(eastern)
print(eastern_now)  # Output: YYYY-MM-DD HH:MM:SS.microseconds-04:00

# Formatting the date
formatted_date = eastern_now.strftime("%B %d, %Y %I:%M %p")
print(formatted_date)  # Output: October 05, 2023 02:30 PM

# Arithmetic operation
future_date = eastern_now + timedelta(days=7)
print(future_date)  # Output: YYYY-MM-DD HH:MM:SS.microseconds-04:00