Python strftime directive %p
Locale’s equivalent of AM or PM.
Example (from datetime(2026, 6, 18, 13, 45, 30))
PM
Output depends on the active locale; in Python it follows the process locale (
locale.setlocale). This page and the tester show the C/English value.In Python
from datetime import datetime
dt = datetime(2026, 6, 18, 13, 45, 30)
dt.strftime("%p")
# => "PM"
Parsing with strptime
Parses AM/PM; affects how %I is interpreted. See strptime.dev for the parsing side.
Other Time directives
%HHour (24-hour clock), zero-padded (00–23).%-H24-hour hour with no leading zero. Platform-specific (Linux/%IHour (12-hour clock), zero-padded (01–12).%-I12-hour hour with no leading zero. Platform-specific (Linux/%MMinute, zero-padded (00–59).%-MMinute with no leading zero. Platform-specific (Linux/macOS)%SSecond, zero-padded (00–59; up to 61 historically for leap s%-SSecond with no leading zero. Platform-specific (Linux/macOS)%fMicrosecond as a decimal number, zero-padded to 6 digits (00