Files
ProStock/src/data/utils.py

76 lines
1.6 KiB
Python
Raw Normal View History

"""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")