记录下日期时间的转换和生成:
1.这个是使用datetime 函数生成往后几天的时间,比如当前日期是2019-07-01 那么控制days=1然后再和当前的时间相加,就能得到明天的日期
def time_formate(t):
"""
日期格式化,使用datetime.timedelta(days=1) 来返回几天后的日期
:param t: 传入日期
:return: 返回时间+1的日期
"""
d = datetime.datetime.strptime(t, \'%Y-%m-%d\')
d1 = datetime.timedelta(days=1)
day = d + d1
return day
2.这个是计算时间差的,传入两个时间t1,t2,先根据长度判断要不要进行截取(因为我的数据是从excel来的,excel读取出来的格式是\'2019-07-01),最后返回整数时间,单位H
def time_Comparison(t1,t2):
"""
计算时间差
:param t1:
:param t2:
:return:
"""
diff_time = 0
print(t1, t2)
if len(str(t1)) == 19 and len(str(t2)) == 19 or len(str(t1)) == 18:
d1 = time.mktime(time.strptime(t1, \'%Y-%m-%d %H:%M:%S\'))
d2 = time.mktime(time.strptime(t2, \'%Y-%m-%d %H:%M:%S\'))
d = datetime.timedelta(seconds=d2 - d1)
diff_time = str(d).split(\':\')[0]
else:
t1 = str(t1).split(\'\\'\')[1]
t2 = str(t2).split(\'\\'\')[1]
time1 = str(t1).split(\' \')[1]
time2 = str(t2).split(\' \')[1]
print(t1, t2)
print(time1, time2)
if time1 == \'0\' or time2 == \'0\':
diff_time = 0
elif t2 > t1:
d1 = time.mktime(time.strptime(t1, \'%Y-%m-%d %H:%M:%S\'))
d2 = time.mktime(time.strptime(t2, \'%Y-%m-%d %H:%M:%S\'))
d = datetime.timedelta(seconds=d2 - d1)
diff_time = str(d).split(\':\')[0]
else:
diff_time = 0
return diff_time
3.这个是根据指定的时间段,生成时间段内的所有日期
def getEveryDay(begin_date=\'2019-06-01\',end_date=\'2019-12-31\'):
"""指定开始时间和结束时间,获取中间的日期"""
date_list = []
begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d")
end_date = datetime.datetime.strptime(end_date, "%Y-%m-%d")
while begin_date <= end_date:
date_str = begin_date.strftime("%Y-%m-%d")
date_list.append(date_str)
begin_date += datetime.timedelta(days=1)
print(\'共生成了%s天\' % str(len(date_list)))
return date_list
4.时间戳批量装换
def getEveryDayTime(date_list):
"""日期转换为时间戳"""
time_stamps = []
for i in date_list:
dt = time.strptime(i, \'%Y-%m-%d %H:%M:%S\')
time_stamp = int(time.mktime(dt))
time_stamps.append(time_stamp)
print(\'合成后的时间戳:%s\' % str(time_stamps))
return time_stamps
5.单个时间戳转换
def getTime(t):
"""单个日期初始化时间戳"""
dt = time.strptime(t, \'%Y-%m-%d %H:%M:%S\')
time_stamp = int(time.mktime(dt))
return time_stamp
6.使用format格式化我们想要的时间格式
def paiban_data(self, day):
"""使用format初始化时间格式,plan_check_time"""
day_list = []
d = day.split(\' \')[0]
dd = "\'{} {}".format(d, \'09:30:00\')
db = "\'{} {}".format(d, \'18:30:00\')
day_list.append(dd)
day_list.append(db)
return day_list