Skip to content

Commit f06cc0d

Browse files
[Edit] Python: .strptime() (#7048)
* [Edit] SQL: DATEDIFF() * Update datediff.md * [Edit] Python: .strptime() * Update content/python/concepts/dates/terms/strptime/strptime.md * Update content/python/concepts/dates/terms/strptime/strptime.md * Update content/python/concepts/dates/terms/strptime/strptime.md * Update content/python/concepts/dates/terms/strptime/strptime.md * Update content/python/concepts/dates/terms/strptime/strptime.md ---------
1 parent f325ea6 commit f06cc0d

File tree

1 file changed

+135
-27
lines changed
  • content/python/concepts/dates/terms/strptime

1 file changed

+135
-27
lines changed
Lines changed: 135 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,177 @@
11
---
22
Title: '.strptime()'
3-
Description: 'Returns a datetime object that represents the parsed date and time from the given string, based on the specified format.'
3+
Description: 'Parses a string representing a date and time according to a specified format and returns a `datetime` object'
44
Subjects:
5-
- 'Python'
65
- 'Computer Science'
6+
- 'Web Development'
77
Tags:
88
- 'Date'
9-
- 'Time'
9+
- 'Methods'
1010
- 'Strings'
11+
- 'Time'
1112
CatalogContent:
1213
- 'learn-python-3'
1314
- 'paths/computer-science'
1415
---
1516

16-
The **`.strptime()`** is a method included in the [`datetime`](https://www.codecademy.com/resources/docs/python/dates) module. It is used to parse a string representing a date and/or time and convert it into a `datetime` object using a specified format.
17+
The **`.strptime()`** method is a class method in Python's [`datetime`](https://www.codecademy.com/resources/docs/python/dates) module that parses a string representing a date and time according to a specified format and returns a corresponding `datetime` object. It serves as the inverse operation to [`.strftime()`](https://www.codecademy.com/resources/docs/python/time-module/strftime) by converting formatted string representations back into datetime objects that can be manipulated programmatically.
18+
19+
The `strptime()` method is essential for applications that need to process date and time data from external sources such as log files, user input, APIs, CSV files, or databases where dates are stored as strings. It enables developers to convert these string representations into Python datetime objects for calculations, comparisons, formatting, and other datetime operations. Common use cases include parsing timestamps from log files, processing user-entered dates in web forms, importing date data from spreadsheets, and converting API responses containing date strings.
1720

1821
## Syntax
1922

2023
```pseudo
24+
datetime.strptime(date_string, format)
25+
```
26+
27+
**Parameters:**
28+
29+
- `date_string`: The string containing the date and time information to be parsed
30+
- `format`: A string specifying the format of the input string using format directives
31+
32+
**Return value:**
33+
34+
Returns a `datetime` object representing the parsed date and time.
35+
36+
## Example 1: Basic String Parsing
37+
38+
This example demonstrates the fundamental usage of `.strptime()` to convert a simple date string into a `datetime` object:
39+
40+
```py
2141
from datetime import datetime
2242

23-
datetime.strptime(date_string, format)
43+
# Parse a date string in YYYY-MM-DD format
44+
date_string = "2024-03-15"
45+
date_object = datetime.strptime(date_string, "%Y-%m-%d")
46+
47+
print("Original string:", date_string)
48+
print("Parsed datetime object:", date_object)
49+
print("Type:", type(date_object))
50+
51+
# Access individual components
52+
print("Year:", date_object.year)
53+
print("Month:", date_object.month)
54+
print("Day:", date_object.day)
2455
```
2556

26-
- `date_string`: The string representing the date and/or time to be parsed.
27-
- `format`: A string that defines the structure of `date_string` using format codes from the `datetime` module (e.g., `%Y` for a four-digit year, `%m` for a two-digit month).
57+
This example results in the following output:
2858

29-
It returns a `datetime` object, which represents the parsed date and time from the provided `date_string` according to the specified `format`.
59+
```shell
60+
Original string: 2024-03-15
61+
Parsed datetime object: 2024-03-15 00:00:00
62+
Type: <class 'datetime.datetime'>
63+
Year: 2024
64+
Month: 3
65+
Day: 15
66+
```
3067

31-
## Example
68+
The example shows how `.strptime()` converts a string into a full `datetime` object. Notice that when only a date is provided, the time components default to `00:00:00`.
3269

33-
In the following example, the `.strptime()` method is used to parse a date-time string into a `datetime` object based on the specified format:
70+
## Example 2: Log File Processing
71+
72+
This example demonstrates parsing timestamps from a log file format, which is a common real-world scenario for system administrators and developers:
3473

3574
```py
3675
from datetime import datetime
3776

38-
# Define the date-time string and format
39-
datetime_string = "27/12/2024 15:30:00"
40-
datetime_format = "%d/%m/%Y %H:%M:%S"
77+
# Sample log entries with timestamps
78+
log_entries = [
79+
"2024-06-09 14:30:25 INFO: User login successful",
80+
"2024-06-09 14:32:18 ERROR: Database connection failed",
81+
"2024-06-09 14:33:45 WARNING: High memory usage detected"
82+
]
83+
84+
# Extract and parse timestamps from log entries
85+
parsed_timestamps = []
4186

42-
# Parse the string into a datetime object
43-
dt_object = datetime.strptime(datetime_string, datetime_format)
87+
for entry in log_entries:
88+
# Extract timestamp part (first 19 characters)
89+
timestamp_str = entry[:19]
4490

45-
print(dt_object)
91+
# Parse the timestamp
92+
timestamp_obj = datetime.strptime(timestamp_str, "%Y-%m-%d %H:%M:%S")
93+
parsed_timestamps.append(timestamp_obj)
94+
95+
print(f"Log time: {timestamp_obj}")
96+
print(f"Day of week: {timestamp_obj.strftime('%A')}")
97+
98+
# Calculate time difference between first and last log entry
99+
if len(parsed_timestamps) > 1:
100+
time_diff = parsed_timestamps[-1] - parsed_timestamps[0]
101+
print(f"\nTime span of logs: {time_diff}")
46102
```
47103

48-
The code above produces an output as:
104+
This example results in the following output:
49105

50106
```shell
51-
2024-12-27 15:30:00
107+
Log time: 2024-06-09 14:30:25
108+
Day of week: Sunday
109+
Log time: 2024-06-09 14:32:18
110+
Day of week: Sunday
111+
Log time: 2024-06-09 14:33:45
112+
Day of week: Sunday
113+
114+
Time span of logs: 0:03:20
52115
```
53116

54-
## Codebyte Example
117+
This example shows practical usage for parsing server logs or application logs where timestamps need to be extracted and analyzed for monitoring, debugging, or reporting purposes.
55118

56-
Run the following codebyte example to understand the use of the `.strptime()` method:
119+
## Codebyte Example: International Date Format Processing
120+
121+
This example demonstrates handling various international date formats, which is crucial for applications dealing with global data sources:
57122

58123
```codebyte/python
59124
from datetime import datetime
60125
61-
# Define the date string and format
62-
date_string = "2025-01-08"
63-
date_format = "%Y-%m-%d"
126+
# Different international date formats
127+
international_dates = [
128+
("15/03/2024", "%d/%m/%Y", "European DD/MM/YYYY"),
129+
("March 15, 2024", "%B %d, %Y", "US Long Format"),
130+
("15-Mar-24", "%d-%b-%y", "Short Month Name"),
131+
("2024.03.15 18:30", "%Y.%m.%d %H:%M", "Dot Separated with Time")
132+
]
133+
134+
print("Converting international date formats:")
135+
print("-" * 50)
136+
137+
for date_str, fmt, description in international_dates:
138+
try:
139+
# Parse the date string according to its format
140+
parsed_date = datetime.strptime(date_str, fmt)
141+
142+
# Convert to standardized format for comparison
143+
standard_format = parsed_date.strftime("%Y-%m-%d %H:%M:%S")
144+
145+
print(f"{description}:")
146+
print(f" Input: {date_str}")
147+
print(f" Parsed: {standard_format}")
148+
print(f" Weekday: {parsed_date.strftime('%A')}")
149+
print()
150+
151+
except ValueError as e:
152+
print(f"Error parsing {date_str}: {e}")
153+
154+
# Demonstrate timezone handling with UTC indicator
155+
utc_string = "2024-03-15T14:30:00Z"
156+
# Remove 'Z' and parse (strptime doesn't handle 'Z' directly)
157+
clean_utc = utc_string.replace('Z', '')
158+
utc_datetime = datetime.strptime(clean_utc, "%Y-%m-%dT%H:%M:%S")
159+
print(f"UTC timestamp: {utc_string}")
160+
print(f"Parsed as: {utc_datetime}")
161+
```
64162

65-
# Parse the string into a datetime object
66-
dt_object = datetime.strptime(date_string, date_format)
163+
This example illustrates how `.strptime()` can handle various date formats commonly encountered when processing data from different countries and systems.
67164

68-
print(dt_object)
69-
```
165+
## Frequently Asked Questions
166+
167+
### 1. What's the difference between `.strptime()` and `.strftime()`?
168+
169+
`strptime()` converts strings to `datetime` objects, while `.strftime()` converts `datetime` objects to formatted strings. They are inverse operations.
170+
171+
### 2. How do I handle invalid date strings using `.strptime()` in Python?
172+
173+
If the input string does not match the expected format, `.strptime()` will raise a `ValueError`. To handle such cases safely, you can use a try-except block.
174+
175+
### 3. Can `.strptime()` parse time-only or date-only strings in Python?
176+
177+
Yes, `.strptime()` can parse time-only or date-only strings, as long as the format string matches exactly.

0 commit comments

Comments
 (0)