用Python怎样计算特定格式时间戳的时间差
Admin 2022-07-04 群英技术资讯 1016 次浏览
今天这篇给大家分享的知识是“用Python怎样计算特定格式时间戳的时间差”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“用Python怎样计算特定格式时间戳的时间差”文章能帮助大家解决问题。输入一个特定格式的时间戳,自动获取前进或者后退多少小时之后的时间
时间戳转换函数
def date_time_str_to_long(input_date_time_string):
'''
标准时间格式转10位时间戳,如:'2020-01-16 08:05:09' 转为 '1579133109'
:param input_date_time_string: string类型,输入的标准时间,如:'2020-01-16 08:05:09'
:return: 10位时间戳,如:'1579133109'
'''
# 字符类型的时间
# input_date_time_string = '2013-03-06 08:05:09'
# input_date_time_string = '2013-03-06 08:05:09'
# 转为时间数组
timeArray = time.strptime(input_date_time_string, "%Y-%m-%d %H:%M:%S")
# 转为时间戳
timeStamp = int(time.mktime(timeArray))
print('标准时间={},10位时间戳={}'.format(input_date_time_string, timeStamp)) # 1381419600
return timeStamp
def date_time_long_to_str(timeStamp='1579133109', utc_time=0):
'''
将10位时间戳转为标准时间,如:'1579133109' 转为 '2020-01-16 08:05:09'
:param timeStamp: string类型,输入的10位时间戳,如:'1579133109'
:param utc_time: 选择是否输出为UTC时间,设置为1,则输出UTC时间,UTC时间=当前时间-8小时;默认为0,输出为非UTC时间
:return: 标准时间,如:'2020-01-16 08:05:09'
'''
# # 使用datetime
# dateArray = datetime.datetime.fromtimestamp(timeStamp)
# otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S")
# print(otherStyleTime) # 2013-10-10 23:40:00
if utc_time == 0:
# 使用time
timeStamp = int(timeStamp)
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print('input_time={},output_StyleTime={}'.format(timeStamp, otherStyleTime)) # 2013-10-10 23:40:00
return otherStyleTime
else:
# 使用datetime,指定utc时间,比现在时间少8小时
import datetime
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
otherStyleTime_utc = dateArray.strftime("%Y-%m-%d %H:%M:%S")
print('input_time={},output_StyleTime_utc={}'.format(timeStamp, otherStyleTime_utc)) # 2013-10-10 15:40:00
return otherStyleTime_utc
代码实现
def get_now_ISO_time_count(first_time_string,count_int=3600):
#"2030-12-02T17:00:00+08:00"
if first_time_string =='':
print('初始时间不能为空,请确认...')
return -1
first_time_string=str(first_time_string).replace('T',' ').replace('+08:00','')
print('first_time_string={}'.format(first_time_string))
count_time=int(date_time_str_to_long(first_time_string))+int(count_int)
count_str=str(date_time_long_to_str(count_time))
result=count_str[0:10]+'T'+count_str[11:]+'+08:00'
print("get_now_ISO_time_count_08={}".format(result))
return str(result)
代码调用
if __name__ == '__main__':
print(get_now_ISO_time_count("2030-12-02T17:00:00+08:00", 10800))
执行结果
first_time_string=2030-12-02 17:00:00
标准时间=2030-12-02 17:00:00,10位时间戳=1922432400
input_time=1922443200,output_StyleTime=2030-12-02 20:00:00
get_now_ISO_time_count_08=2030-12-02T20:00:00+08:00
2030-12-02T20:00:00+08:00
def date_time_count(startTime, endTime):
'''
计算两个时间之间的差值,精确到秒
:param startTime:
:param endTime:
:return:
'''
spent_times = int(date_time_str_to_long(endTime)) - int(date_time_str_to_long(startTime))
print('endTime={},startTime={},时间差值={}'.format(endTime, startTime, spent_times))
return spent_times
代码调用
if __name__ == '__main__':
print(date_time_count("2021-12-06 19:40:00","2021-12-09 14:26:40"))
执行结果
标准时间=2021-12-09 14:26:40,10位时间戳=1639031200
标准时间=2021-12-06 19:40:00,10位时间戳=1638790800
endTime=2021-12-09 14:26:40,startTime=2021-12-06 19:40:00,时间差值=240400
240400
代码实现
def date_time_count_ms(startTime, endTime):
'''
计算两个时间之间的差值,可以精确到毫秒
:param startTime:
:param endTime:
:return:
'''
# 输入时间格式
# a = parse('2019-10-30 23:43:10.123')
# b = parse("2019-10-28/09:08:13.56212")
a = parse(str(endTime))
b = parse(str(startTime))
d_count = (a - b).days # 获取天数的时间差
s_count = (a - b).seconds # 获取时间差中的秒数,也就是23:43:10到09:08:13,不包括前面的天数和秒后面的小数
total_seconds = (a - b).total_seconds() # 包括天数,小时,微秒等在内的所有秒数差
microseconds = (a - b).microseconds # 秒小数点后面的差值
print('endTime={},startTime={},时间差值={}'.format(endTime, startTime, total_seconds))
return total_seconds
代码调用
if __name__ == '__main__':
print(date_time_count_ms("2021-12-06 19:40:44.123","2021-12-08 14:26:40.567"))
执行结果
endTime=2021-12-08 14:26:40.567,startTime=2021-12-06 19:40:44.123,时间差值=153956.444
153956.444
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本文主要介绍的python排序算法的实现,下本有冒泡排序、选择排序、插入排序、快速排序这四种排序的算法实现步骤以及实现的介绍,和四种算法实现的比较,具有一定的参考价值。下面一起跟随小编看看吧。
断言就是世界结果与期望结果去对比,符合预期的测试就是pass,不符合预期的测试就是failed,下面这篇文章主要给大家介绍了关于python生产环境禁用assert断言的相关资料,需要的朋友可以参考下
这篇文章主要介绍了python编写小程序探测linux端口占用情况,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在Python2和Python3中都提供print()方法来打印信息,但两个版本间的print稍微有差异主要体现在以下几个方面:1 python3中print是一个内置函
这篇文章主要给大家分享的是5个python提速技巧,工作或者学习的过程中难免会遇到卡顿问题,下面的提速技巧具有一定的参考价值,需要的小伙伴可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008