You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.3 KiB
102 lines
2.3 KiB
# -*- coding: utf-8 -*-
|
|
|
|
from dateutil.parser import parse
|
|
from dateutil.relativedelta import relativedelta
|
|
from datetime import datetime, timedelta
|
|
import time
|
|
|
|
|
|
def gen_job_datetime(time_str, date_str=''):
|
|
"""
|
|
生成任务的时间和日期
|
|
:param time_str: 时间
|
|
:param date_str: 日期
|
|
:return:
|
|
"""
|
|
if not time_str:
|
|
return None
|
|
return parse(date_str + time_str)
|
|
|
|
|
|
def gen_today_str():
|
|
today = datetime.today()
|
|
return today.strftime("%Y-%m-%d")
|
|
|
|
|
|
def timestamp():
|
|
return int(time.time())
|
|
|
|
|
|
def is_today(date_str):
|
|
publish_date = parse(date_str).date() # 获取日期部分,忽略时间部分
|
|
today = datetime.today().date() # 获取今天的日期,忽略时间部分
|
|
# 检查日期是否相等
|
|
return publish_date == today
|
|
|
|
|
|
def timestamp2date(timestamp_long):
|
|
d = datetime.utcfromtimestamp(float(timestamp_long / 1000))
|
|
return d
|
|
|
|
|
|
def today_timestamp_long():
|
|
"""
|
|
获取今天开始和结束的毫秒时间戳
|
|
:return:
|
|
"""
|
|
start = parse("00:00")
|
|
end = start + timedelta(days=1)
|
|
return start.timestamp() * 1000, end.timestamp() * 1000
|
|
|
|
|
|
def parse_time(time_str):
|
|
return datetime.strptime(time_str, '%H:%M').time()
|
|
|
|
|
|
def eq_time(time1: str, time2: str):
|
|
time1 = datetime.strptime(time1, '%H:%M').time()
|
|
time2 = datetime.strptime(time2, '%H:%M').time()
|
|
|
|
today = datetime.today().date()
|
|
time1 = datetime.combine(today, time1)
|
|
time2 = datetime.combine(today, time2)
|
|
|
|
return time1 == time2
|
|
|
|
|
|
def ge_time(time1: str, time2: str):
|
|
"""
|
|
比较time1是否大于等于time2
|
|
:param time1:
|
|
:param time2:
|
|
:return:
|
|
"""
|
|
time1 = datetime.strptime(time1, '%H:%M').time()
|
|
time2 = datetime.strptime(time2, '%H:%M').time()
|
|
|
|
today = datetime.today().date()
|
|
time1 = datetime.combine(today, time1)
|
|
time2 = datetime.combine(today, time2)
|
|
|
|
return time1 >= time2
|
|
|
|
|
|
def lt_time(time1: str, time2: str):
|
|
"""
|
|
比较time1是否小于time2
|
|
:param time1:
|
|
:param time2:
|
|
:return:
|
|
"""
|
|
time1 = datetime.strptime(time1, '%H:%M').time()
|
|
time2 = datetime.strptime(time2, '%H:%M').time()
|
|
|
|
today = datetime.today().date()
|
|
time1 = datetime.combine(today, time1)
|
|
time2 = datetime.combine(today, time2)
|
|
|
|
return time1 < time2
|
|
|
|
|
|
if __name__ == '__main__':
|
|
print(lt_time("18:52", "23:55"))
|