專案中封裝的time_util常用的方法

江湖乄夜雨發表於2024-11-26
"""
時間工具
"""
import datetime

STANDARD_DATE_FMT_STR = '%Y-%m-%d'
STANDARD_DATETIME_FMT_STR = '%Y-%m-%d %H:%M:%S'


# timestamp、date、datetime、date_str、datetime_str互轉


def is_today(time_str, _type=STANDARD_DATETIME_FMT_STR):
    # 將字串時間轉換為 datetime 物件
    datetime_obj = datetime.datetime.strptime(time_str, _type)

    # 獲取當前日期
    today_date = datetime.date.today()

    # 獲取字串時間的日期
    time_date = datetime_obj.date()

    # 比較日期是否相等
    return today_date == time_date


def timestamp2datetime(timestamp):
    return datetime.datetime.fromtimestamp(timestamp)


def timestamp2datetime_str(timestamp, fmt=STANDARD_DATETIME_FMT_STR):
    return datetime.datetime.fromtimestamp(timestamp).strftime(fmt)


def date2datetime_str(date: datetime.date, fmt=STANDARD_DATETIME_FMT_STR):
    return date.strftime(fmt)


def date2date_str(date: datetime.date, fmt=STANDARD_DATE_FMT_STR):
    return date.strftime(fmt)


def datetime2timestamp(dt: datetime.datetime):
    return int(dt.timestamp())


def datetime2date_str(dt: datetime.datetime, fmt=STANDARD_DATE_FMT_STR):
    return dt.date().strftime(fmt)


def datetime2datetime_str(dt: datetime.datetime, fmt=STANDARD_DATETIME_FMT_STR):
    return dt.strftime(fmt)


def date_str2datetime(date_str, fmt=STANDARD_DATE_FMT_STR):
    return datetime.datetime.strptime(date_str, fmt)


def datetime_str2timestamp(datetime_str, fmt=STANDARD_DATETIME_FMT_STR):
    return int(datetime.datetime.strptime(datetime_str, fmt).timestamp())


def datetime_str2date(datetime_str, fmt=STANDARD_DATETIME_FMT_STR):
    return datetime.datetime.strptime(datetime_str, fmt).date()


def datetime_str2datetime(datetime_str, fmt=STANDARD_DATETIME_FMT_STR):
    return datetime.datetime.strptime(datetime_str, fmt)


def datetime_str2date_str(datetime_str, datetime_str_fmt=STANDARD_DATETIME_FMT_STR, fmt=STANDARD_DATE_FMT_STR):
    return datetime.datetime.strptime(datetime_str, datetime_str_fmt).strftime(fmt)

相關文章