首页 > 技术文章 > python 日期生成和时间格式化

jueshilaozhongyi 2019-07-29 11:35 原文

记录下日期时间的转换和生成:
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

推荐阅读