Dates Module
Module
Python doesn't have a date datatype but has the module datetime that can be used to manipulate dates and times.
Displaying Current Date and Time
To display the current date and time:
import datetime
x = datetime.datetime.now()
print(x)
Output:
2024-07-25 16:51:41.083945
The `datetime` object contains year, month, day, hour, minute, second, and microsecond attributes.
Accessing Date Components
To access specific components of the current date:
import datetime
x = datetime.datetime.now()
print(x.year)
print(x.strftime("%A"))
Output:
2024
Thursday
Creating Date Objects
To create a specific date:
import datetime
x = datetime.datetime(2024, 7, 25)
print(x)
Output:
2024-07-25 00:00:00
The `datetime()` constructor can also take optional parameters for time and timezone.
The strftime() Method
The `strftime()` method formats `datetime` objects into readable strings using format codes:
import datetime
x = datetime.datetime(2023, 7, 12)
print(x.strftime("%Y")) # Year
Output:
2023
Format Codes Reference
Here are some commonly used format codes:
Directive | Description | Example |
---|---|---|
%a | Weekday, short version | Wed |
%A | Weekday, full version | Wednesday |
%w | Weekday as a number 0-6, 0 is Sunday | 3 |
%d | Day of month 01-31 | 31 |
%b | Month name, short version | Dec |
%B | Month name, full version | December |
%m | Month as a number 01-12 | 12 |
%y | Year, short version, without century | 18 |
%Y | Year, full version | 2018 |
%H | Hour 00-23 | 17 |
%I | Hour 00-12 | 05 |
%p | AM/PM | PM |
%M | Minute 00-59 | 41 |
%S | Second 00-59 | 08 |
%f | Microsecond 000000-999999 | 548513 |
%z | UTC offset | +0100 |
%Z | Timezone | CST |
%j | Day number of year 001-366 | 365 |
%U | Week number of year, Sunday as the first day of week, 00-53 | 52 |
%W | Week number of year, Monday as the first day of week, 00-53 | 52 |
%c | Local version of date and time | Mon Dec 31 17:41:00 2018 |
%C | Century | 20 |
%x | Local version of date | 12/31/18 |
%X | Local version of time | 17:41:00 |
%% | A % character | % |
%G | ISO 8601 year | 2018 |
%u | ISO 8601 weekday (1-7) | 1 |
%V | ISO 8601 weeknumber (01-53) | 01 |
These format codes can be combined to represent various aspects of a date and time.