How to parse dates with strptime in Python

1 Answer

0 votes
from datetime import datetime

def show(label, value, pattern):
    print(f"{label}")
    print(f"  Input:   {value}")
    print(f"  Pattern: {pattern}")
    print(f"  Parsed:  {datetime.strptime(value, pattern)}")
    print("-" * 50)

print("\n=== Python strptime Parsing Examples ===\n")

# 1. ISO-like date
show(
    "ISO-like date",
    "2026-05-21",
    "%Y-%m-%d"
)

# 2. Date + time (24-hour)
show(
    "Date + time (24-hour)",
    "2026-05-21 14:30:10",
    "%Y-%m-%d %H:%M:%S"
)

# 3. Date + time with AM/PM
show(
    "Date + time (12-hour with AM/PM)",
    "05/21/2026 02:15 PM",
    "%m/%d/%Y %I:%M %p"
)

# 4. Month names
show(
    "Day Month Year (full month name)",
    "21 May 2026",
    "%d %B %Y"
)

show(
    "Day Month Year (short month name, 2-digit year)",
    "21 May 26",
    "%d %b %y"
)

# 5. Timezone offset
show(
    "Date + time with timezone offset",
    "2026-05-21 14:30:10 +0300",
    "%Y-%m-%d %H:%M:%S %z"
)

# 6. RFC-style timestamp
show(
    "RFC-style timestamp",
    "Thu, 21 May 2026 14:30:10 +0300",
    "%a, %d %b %Y %H:%M:%S %z"
)



'''
run:

=== Python strptime Parsing Examples ===

ISO-like date
  Input:   2026-05-21
  Pattern: %Y-%m-%d
  Parsed:  2026-05-21 00:00:00
--------------------------------------------------
Date + time (24-hour)
  Input:   2026-05-21 14:30:10
  Pattern: %Y-%m-%d %H:%M:%S
  Parsed:  2026-05-21 14:30:10
--------------------------------------------------
Date + time (12-hour with AM/PM)
  Input:   05/21/2026 02:15 PM
  Pattern: %m/%d/%Y %I:%M %p
  Parsed:  2026-05-21 14:15:00
--------------------------------------------------
Day Month Year (full month name)
  Input:   21 May 2026
  Pattern: %d %B %Y
  Parsed:  2026-05-21 00:00:00
--------------------------------------------------
Day Month Year (short month name, 2-digit year)
  Input:   21 May 26
  Pattern: %d %b %y
  Parsed:  2026-05-21 00:00:00
--------------------------------------------------
Date + time with timezone offset
  Input:   2026-05-21 14:30:10 +0300
  Pattern: %Y-%m-%d %H:%M:%S %z
  Parsed:  2026-05-21 14:30:10+03:00
--------------------------------------------------
RFC-style timestamp
  Input:   Thu, 21 May 2026 14:30:10 +0300
  Pattern: %a, %d %b %Y %H:%M:%S %z
  Parsed:  2026-05-21 14:30:10+03:00
--------------------------------------------------

'''

 



answered 9 hours ago by avibootz
...