1. Python datetime module overview
Pythondatetime
Modules are the core modules used in the standard library to handle dates and times, providing the following core functions:
- Date/time objectification: Abstract date, time, date time, etc. into objects, supporting calculation and comparison.
- Format and parse: Supports two-way conversion between date and time and string.
-
Time zone processing: Supports local time and time calculation with time zone (need to be combined
pytz
etc. third-party library enhancement). -
Time operation:pass
timedelta
Implement time difference calculation and support the addition and subtraction of date and time.
2. Analysis of datetime module core class
1. date
Category: Processing date (year, month, day)
- use: Process pure dates without time.
- Key Methods:
from datetime import date today = () # Get the current datecustom_date = date(2023, 10, 1) # Create a specified dateprint(, , ) # Output:2023 10 1
2. time
Class: Processing time (hour, minute, second, microsecond)
- use: Process pure time without dates.
- Example:
from datetime import time t = time(14, 30, 15) # 14:30:15 print(, ) # Output:14 30
3. datetime
Class: Combination of date and time
- Core functions: Process date and time at the same time, and support time zone (need to be configured).
- Common operations:
from datetime import datetime now = () # Current local timeutc_now = () # Current UTC timedt = datetime(2023, 10, 1, 9, 30) # 2023-10-01 09:30:00 # timestamp conversiontimestamp = () # Convert to Unix timestampdt_from_ts = (1633068600)
4. timedelta
Class: Time interval calculation
- use: represents the difference between two time points.
- Example:
from datetime import datetime, timedelta now = () future = now + timedelta(days=7, hours=3) #7 days and 3 hours laterdelta = future - now # Calculate the time differenceprint() # Output:7
5. tzinfo
and time zone processing
-
Basic time zone: Built-in Python
timezone
Class (requires Python 3.2+). -
Third-party library: Recommended
pytz
Handle complex time zones. - Example:
from datetime import datetime, timezone import pytz # Local time to UTClocal_dt = datetime(2023, 10, 1, 10, 0) utc_dt = local_dt.astimezone() # Use pytz to handle time zonestz_shanghai = ('Asia/Shanghai') dt_with_tz = tz_shanghai.localize(datetime(2023, 10, 1, 10, 0))
3. Date and time formatting and analysis
1. strftime
:Date → String
dt = datetime(2023, 10, 1, 14, 30) formatted = ("%Y-%m-%d %H:%M:%S") # Output:2023-10-01 14:30:00
2. strptime
: string → date
date_str = "2023-10-01" dt = (date_str, "%Y-%m-%d") # Resolved asdatetimeObject
3. Common format symbols
Format symbols | meaning | Example |
---|---|---|
%Y | Four years | 2023 |
%m | Two months | 10 |
%d | Two dates | 01 |
%H | 24-hour hours | 14 |
%M | minute | 30 |
%S | Second | 45 |
4. Typical application scenarios
Countdown calculation:
end_date = datetime(2023, 12, 31) days_left = (end_date - ()).days
Log timestamp:
log_time = ().strftime("[%Y-%m-%d %H:%M:%S]")
User input processing:
user_input = "2023-10-01" try: dt = (user_input, "%Y-%m-%d") except ValueError: print("Date format error!")
5. Things to note
-
Time zone sensitivity:default
datetime
The object is "naive" (no time zone), and it needs to be explicitly specified when handling cross-time zones. -
Performance optimization: It is recommended to use a timestamp (
timestamp()
)storage. -
Leap year processing:
date
Classes automatically handle leap years, such asdate(2024, 2, 29)
efficient.
If you need more advanced time processing functions (such as natural language parsing), you can refer to the third-party library.dateutil
orarrow
。
This is the end of this article about the overview of the Python datetime module. For more related Python datetime module content, please search for my previous articles or continue browsing the related articles below. I hope everyone will support me in the future!