from datetime import datetime


def ISO格式转标准时间(时间字符串: str) -> str | None:
    """把 ISO 格式时间字符串转成常见的标准时间字符串。

    功能说明:
        - 这个函数用于把接口、日志里常见的 ISO 时间字符串，转换成 ``YYYY-MM-DD HH:MM:SS`` 这种更容易阅读的格式。
        - 它可以处理带 ``T`` 的时间，也可以处理末尾带 ``Z`` 或时区偏移量的时间。
        - 如果传入的内容不是合法时间，函数不会报错，而是返回 ``None``。

    Args:
        时间字符串: ISO 格式的时间字符串。

    Returns:
        成功时返回标准时间字符串；转换失败时返回 ``None``。
    """
    try:
        dt = datetime.fromisoformat(时间字符串.replace("Z", "+00:00"))
        return dt.strftime("%Y-%m-%d %H:%M:%S")
    except Exception:
        return None


if __name__ == "__main__":
    print("===== 示例1：把带 Z 的 ISO 时间转成标准时间 =====")
    print("结果:", ISO格式转标准时间("2025-11-13T06:50:00Z"))

    print("\n===== 示例2：把带时区偏移的 ISO 时间转成标准时间 =====")
    print("结果:", ISO格式转标准时间("2025-11-13T14:50:00+08:00"))

    print("\n===== 示例3：处理不带时区的 ISO 时间 =====")
    print("结果:", ISO格式转标准时间("2025-11-13T06:50:00"))

    print("\n===== 示例4：输入空字符串 =====")
    print("结果:", ISO格式转标准时间(""))

    print("\n===== 示例5：输入错误格式 =====")
    print("结果:", ISO格式转标准时间("2025/11/13 06:50:00"))

    print("\n===== 示例6：应用场景-整理接口返回的创建时间 =====")
    接口数据 = {
        "order_id": "ORD-1001",
        "created_at": "2025-11-13T06:50:00Z",
    }
    标准时间 = ISO格式转标准时间(接口数据["created_at"])
    print("订单创建时间:", 标准时间)
