from datetime import datetime


def 时间转时分秒(时间字符串: str) -> tuple[int, int, int] | None:
    """把标准时间字符串拆成“时、分、秒”。

    功能说明:
        - 这个函数用于把 ``YYYY-MM-DD HH:MM:SS`` 这种标准时间拆成三个整数。
        - 返回结果是 ``(时, 分, 秒)`` 这样的元组。
        - 适合继续做时间显示、倒计时或条件判断。
        - 输入格式不正确时，函数返回 ``None``。

    Args:
        时间字符串: 标准时间字符串。

    Returns:
        成功时返回 ``(时, 分, 秒)``；失败时返回 ``None``。
    """
    try:
        时间对象 = datetime.strptime(时间字符串.strip(), "%Y-%m-%d %H:%M:%S")
        return 时间对象.hour, 时间对象.minute, 时间对象.second
    except Exception:
        return None


if __name__ == "__main__":
    print("===== 示例1：拆分普通时间 =====")
    print("结果:", 时间转时分秒("2026-03-20 10:30:45"))

    print("\n===== 示例2：拆分个位数时间 =====")
    print("结果:", 时间转时分秒("2026-03-20 05:06:07"))

    print("\n===== 示例3：拆分午夜时间 =====")
    print("结果:", 时间转时分秒("2026-03-20 00:00:00"))

    print("\n===== 示例4：输入错误格式 =====")
    print("结果:", 时间转时分秒("2026/03/20 10:30:45"))

    print("\n===== 示例5：输入空字符串 =====")
    print("结果:", 时间转时分秒(""))

    print("\n===== 示例6：应用场景-把签到时间拆成时分秒后分别显示 =====")
    时, 分, 秒 = 时间转时分秒("2026-03-20 08:15:30") or (None, None, None)
    print("结果:", 时, 分, 秒)
