You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何打印“Saturday 8th of February 2020 07:46:40 PM CDT”格式时间

日期格式示例

Python3.9+ 原生实现方案

Windows环境先执行安装时区依赖:
pip install tzdata
Linux/macOS无需额外安装依赖。

from datetime import datetime
from zoneinfo import ZoneInfo

def get_ordinal_suffix(day: int) -> str:
    # 11、12、13统一用th后缀
    if 11 <= day <= 13:
        return 'th'
    # 其余按个位匹配后缀
    return {1: 'st', 2: 'nd', 3: 'rd'}.get(day % 10, 'th')

# 指定美国中部时区,自动适配夏令时(CDT)/冬令时(CST)
central_tz = ZoneInfo("America/Chicago")

# 示例:生成目标指定日期,若要取当前时间替换为 dt = datetime.now(tz=central_tz)
dt = datetime(2020, 2, 8, 19, 46, 40, tzinfo=central_tz)

ordinal_day = f"{dt.day}{get_ordinal_suffix(dt.day)}"
result = dt.strftime(f"%A {ordinal_day} of %B %Y %I:%M:%S %p %Z")
print(result)

输出结果:
Saturday 8th of February 2020 07:46:40 PM CDT


Python3.8及更低版本兼容方案

需先安装pytz时区库:
pip install pytz

from datetime import datetime
import pytz

def get_ordinal_suffix(day: int) -> str:
    if 11 <= day <= 13:
        return 'th'
    return {1: 'st', 2: 'nd', 3: 'rd'}.get(day % 10, 'th')

central_tz = pytz.timezone("America/Chicago")
# 示例指定日期,取当前时间替换为 dt = datetime.now(tz=central_tz)
dt = central_tz.localize(datetime(2020, 2, 8, 19, 46, 40))

ordinal_day = f"{dt.day}{get_ordinal_suffix(dt.day)}"
result = dt.strftime(f"%A {ordinal_day} of %B %Y %I:%M:%S %p %Z")
print(result)

注意事项

  • 不要手动固定时区名称为CDT,指定America/Chicago时区会自动根据日期切换冬夏令时标识,避免时间出错
  • 序数后缀逻辑已覆盖所有合法日期场景,无需额外判断

内容的提问来源于stack exchange,提问作者iksskjj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 21:24:03