Python · Some intermediate topics
Date & Time
The full text of this chapter, to read or revisit. To practise, do the exercises.
▶ Do the exercises
Exercise 1 — The datetime Module
Python has a built-in module called `datetime` that lets you work with dates and times. To use it, you need to import it first.
from datetime import datetime now = datetime.now() print(now) print(type(now))
`datetime.now()` gives you the current date and time. The result is a special `datetime` object, not a regular string.
Exercise 2 — Creating a Specific Date
You can create a specific date using `datetime(year, month, day)`. This is useful when you want to store a known date.
from datetime import datetime catch_date = datetime(2024, 3, 15) print(catch_date)
The order is always: year, month, day. You can also add hours, minutes, seconds: `datetime(2024, 3, 15, 14, 30, 0)`.
Exercise 3 — Accessing Date Parts
A `datetime` object has attributes that let you get each part separately.
from datetime import datetime d = datetime(2024, 7, 25, 14, 30) print(d.year) print(d.month) print(d.day) print(d.hour) print(d.minute)
Available Attributes
`.year`, `.month`, `.day`, `.hour`, `.minute`, `.second`. Each returns an integer.
Exercise 4 — datetime Attributes
from datetime import datetime d = datetime(2024, 7, 25) print(d.month)
What is printed?
Options
• ```25```
• ```7```
• ```2024```
• ```July```
Hint : `.month` returns the month as a ***number***, not a name.
Exercise 5 — Create a Date
Complete the code to create the date January 1st, 2025.
from datetime import datetime new_year = datetime(____, ____, 1) print(new_year)
Options: 2025 1 12 31
Hint : `datetime()` takes year first, then month, then day.
Exercise 6 — Get the Day
Complete the code to print only the day of the date.
from datetime import datetime d = datetime(2024, 12, 25) print(d.____)
Options: day month year date time
Hint : Which attribute gives you just the day number?
Exercise 7 — Formatting Dates with strftime
`strftime()` lets you format a date as a readable string. You use format codes to control the output.
from datetime import datetime d = datetime(2024, 3, 15) print(d.strftime("%d/%m/%Y")) print(d.strftime("%B %d, %Y"))
Common Format Codes
- `%d` = day (01-31) - `%m` = month number (01-12) - `%B` = full month name - `%Y` = 4-digit year - `%H` = hour (00-23) - `%M` = minute (00-59)
Exercise 8 — strftime Output
from datetime import datetime d = datetime(2024, 3, 15) print(d.strftime("%Y-%m-%d"))
What is printed?
Options
• ```15/03/2024```
• ```2024-03-15```
• ```March 15, 2024```
• ```2024-3-15```
Hint : `%Y` gives the 4-digit year, `%m` the 2-digit month, `%d` the 2-digit day.
Exercise 9 — Format Codes
Match each `strftime` format code with what it returns:
Items to match
• %d
• %m
• %Y
• %B
• %H
Definitions
• Day (01-31)
• Month number (01-12)
• Year (4 digits)
• Full month name
• Hour (00-23)
Exercise 10 — Format a Date
Complete the code to display the date as "15/03/2024".
from datetime import datetime d = datetime(2024, 3, 15) print(d.strftime("____/____/____"))
Options: %d %m %Y %B %H %y
Hint : The format is day/month/year. Which codes give 2-digit day, 2-digit month, and 4-digit year?
Exercise 11 — Comparing Dates
You can compare `datetime` objects using `<`, `>`, `==`. This is useful to find which date is more recent.
from datetime import datetime d1 = datetime(2024, 1, 1) d2 = datetime(2024, 12, 25) print(d1 < d2) print(d1 > d2) print(d1 == d2)
A more recent date is "greater than" an older one. `d2` (December) is greater than `d1` (January).
Exercise 12 — Codémon Catch Tracker
Create a Codémon catch date tracker! 1. Create 3 catch dates: - Aquachu: March 15, 2024 - Pyrochu: July 4, 2024 - Florachu: December 25, 2024 2. For each, print: `"Aquachu caught on 15/03/2024"` 3. Find and print which Codémon was caught most recently (compare dates with `>`)
Starter code
from datetime import datetime # 1. Complete the list with Pyrochu (July 4, 2024) and Florachu (December 25, 2024) catches = [ ("Aquachu", datetime(2024, 3, 15)), ] # 2. Print formatted dates # 3. Find the most recent catch
Back to the course