45 lines
1.0 KiB
Python
45 lines
1.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
@File : time_util.py
|
|
@Date : 2023-06-03
|
|
"""
|
|
from __future__ import print_function, unicode_literals, absolute_import, division
|
|
|
|
from datetime import datetime
|
|
|
|
from dateutil import parser
|
|
from dateutil.tz import tzlocal
|
|
|
|
# 时间格式化
|
|
DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
|
|
|
|
|
|
def parse_time(time_str):
|
|
"""
|
|
解析字符串为时间
|
|
:param time_str: str
|
|
:return: datetime
|
|
"""
|
|
|
|
# fix: Python2 TypeError: Required argument 'tz' (pos 1) not found
|
|
return datetime.strptime(
|
|
parser.parse(time_str).astimezone(tzlocal()).strftime(DATETIME_FORMAT),
|
|
DATETIME_FORMAT
|
|
)
|
|
|
|
|
|
def get_diff_days(start_date, end_date):
|
|
"""
|
|
获取两个时间对象的时间差天数
|
|
:param start_date: [datetime, DateTimeField]
|
|
:param end_date: [datetime, DateTimeField]
|
|
:return:
|
|
"""
|
|
if start_date and end_date \
|
|
and isinstance(start_date, datetime) \
|
|
and isinstance(end_date, datetime):
|
|
return (end_date - start_date).days
|
|
else:
|
|
return 0
|
|
|