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

如何在Python(Django)中格式化字符串时间?解决转换报错问题

解决Django中时间字符串转换的格式不匹配问题

错误原因

你遇到的ValueError是因为解析时间时用的格式%m/%d/%y %H:%M:%S和输入字符串2022-09-13 11:00:00.996795+00完全不匹配。输入字符串包含4位年份、微秒和时区偏移,必须用对应格式化指令才能正确解析。

修正方案

  1. 正确解析时间字符串:使用%Y-%m-%d %H:%M:%S.%f%z格式,对应输入的年-月-日 时:分:秒.微秒+时区结构。
  2. 格式化目标输出:用%I:%M %p生成12小时制的“时:分 am/pm”格式,其中%I是12小时制小时,%p表示上午/下午标识。

修正后的代码

from datetime import datetime

def time_slots(self, string_time='2022-09-13 11:00:00.996795+00'):
    # 解析时间字符串,匹配输入格式
    start_time = datetime.strptime(string_time, '%Y-%m-%d %H:%M:%S.%f%z')
    # 格式化为目标样式,转小写得到am/pm
    formatted_start_time = start_time.strftime('%I:%M %p').lower()
    return formatted_start_time

关键格式说明

  • %Y:4位年份(如2022)
  • %m:2位月份(如09)
  • %d:2位日期(如13)
  • %f:6位微秒(如996795)
  • %z:时区偏移(如+00)
  • %I:12小时制的小时数(01-12)
  • %p:AM/PM标识,通过.lower()转为小写的am/pm

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:45:43