"""Data module utility functions. 集中管理数据模块中常用的工具函数,避免重复定义。 """ from datetime import datetime, timedelta from typing import Optional # 默认全量同步开始日期 DEFAULT_START_DATE = "20180101" # 今日日期 (YYYYMMDD 格式) TODAY: str = datetime.now().strftime("%Y%m%d") def get_today_date() -> str: """获取今日日期(YYYYMMDD 格式)。 Returns: 今日日期字符串,格式为 YYYYMMDD """ return TODAY def get_next_date(date_str: str) -> str: """获取给定日期的下一天。 Args: date_str: YYYYMMDD 格式的日期 Returns: YYYYMMDD 格式的下一天日期 """ dt = datetime.strptime(date_str, "%Y%m%d") next_dt = dt + timedelta(days=1) return next_dt.strftime("%Y%m%d") def get_prev_date(date_str: str) -> str: """获取给定日期的前一天。 Args: date_str: YYYYMMDD 格式的日期 Returns: YYYYMMDD 格式的前一天日期 """ dt = datetime.strptime(date_str, "%Y%m%d") prev_dt = dt - timedelta(days=1) return prev_dt.strftime("%Y%m%d") def parse_date(date_str: str) -> datetime: """解析 YYYYMMDD 格式的日期字符串。 Args: date_str: YYYYMMDD 格式的日期 Returns: datetime 对象 """ return datetime.strptime(date_str, "%Y%m%d") def format_date(dt: datetime) -> str: """将 datetime 对象格式化为 YYYYMMDD 字符串。 Args: dt: datetime 对象 Returns: YYYYMMDD 格式的日期字符串 """ return dt.strftime("%Y%m%d")