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

Python Eve中DATE_FORMAT如何同时兼容带与不带微秒的时间戳

结论

Python Eve 原生的 DATE_FORMAT 配置项不支持同时设置多种时间格式。
该配置底层直接传递给Python标准库的 datetime.strptime() 方法做日期解析,该方法仅支持单一固定格式匹配,不支持正则式的可选分组语法,因此你尝试的(.%f)、[.%f]类写法无法被识别。

可行解决方案(无需自定义数据类型)

无需修改Eve源码或自定义数据类型,只需要在Eve实例初始化前,对Eve的全局日期解析方法做补丁替换即可,示例代码如下:

from datetime import datetime
from eve.utils import parsedate as original_parsedate
import eve.utils

def patched_parsedate(date_str):
    # 优先匹配带微秒的时间格式
    try:
        return datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%S.%fZ')
    except ValueError:
        # 匹配失败后降级匹配不带微秒的格式
        return datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%SZ')

# 替换原生日期解析方法
eve.utils.parsedate = patched_parsedate

# 之后再正常初始化Eve实例
from eve import Eve
app = Eve()
# 其余业务逻辑...

提示:DATE_FORMAT 配置同时控制日期输出的序列化格式,你可以根据业务需要设置为两种格式中的任意一种,上述补丁仅影响输入解析逻辑,不会干扰输出序列化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:57:04