from datetime import datetime, timedelta


def 是否昨天(时间字符串: str) -> bool:
    """判断某个时间是不是昨天。

    功能说明:
        - 这个函数用于判断传入时间的日期部分是否等于昨天。
        - 输入内容必须是 ``YYYY-MM-DD HH:MM:SS`` 格式。
        - 只比较年月日，不比较具体时分秒。
        - 输入格式不正确时，函数返回 ``False``。

    Args:
        时间字符串: 要判断的时间字符串。

    Returns:
        是昨天返回 ``True``，否则返回 ``False``。
    """
    try:
        输入日期 = datetime.strptime(时间字符串.strip(), "%Y-%m-%d %H:%M:%S").date()
        昨天日期 = (datetime.now() - timedelta(days=1)).date()
        return 输入日期 == 昨天日期
    except Exception:
        return False


if __name__ == "__main__":
    昨天时间 = (datetime.now() - timedelta(days=1)).strftime("%Y-%m-%d 09:00:00")
    今天时间 = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

    print("===== 示例1：传入昨天的时间 =====")
    print("结果:", 是否昨天(昨天时间))

    print("\n===== 示例2：传入今天的时间 =====")
    print("结果:", 是否昨天(今天时间))

    print("\n===== 示例3：传入更早的时间 =====")
    print("结果:", 是否昨天("2020-01-01 12:00:00"))

    print("\n===== 示例4：输入错误格式 =====")
    print("结果:", 是否昨天("2026/03/20"))

    print("\n===== 示例5：输入空字符串 =====")
    print("结果:", 是否昨天(""))

    print("\n===== 示例6：应用场景-筛选昨天新增的数据 =====")
    print("是否命中昨天筛选:", 是否昨天(昨天时间))
