from datetime import datetime, timedelta, timezone

# 中国标准时间 (UTC+8)
CHINA_TZ = timezone(timedelta(hours=8))

def get_now():
    """获取当前的中国时间 (UTC+8)"""
    return datetime.now(CHINA_TZ)

def get_now_iso():
    """获取当前中国时间的 ISO 格式字符串"""
    return get_now().isoformat()

def beijing_time(*args):
    """
    用于 logging.Formatter.converter 的转换函数。
    支持 (timestamp) 或 (formatter, timestamp) 调用形式。
    """
    if len(args) == 2:
        # 被作为 bound method 调用: (self, timestamp)
        ts = args[1]
    elif len(args) == 1:
        # 被作为普通函数调用: (timestamp)
        ts = args[0]
    else:
        # 无参数调用（不常见，但作为兜底）
        ts = datetime.now().timestamp()
        
    return datetime.fromtimestamp(ts, CHINA_TZ).timetuple()
