标签: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
实例如下
一、获取 "2030-12-02T17:00:00+08:00" 3小时后的时间格式 "2030-12-02T20:00:00+08:00"
代码实现
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
来源:https://blog.csdn.net/zh6526157/article/details/121750682
0
投稿
猜你喜欢
- 问题你想读写一个二进制数组的结构化数据到Python元组中。解决方案可以使用 struct 模块处理二进制数据。 下面是一段示例代码将一个P
- 如果程序中没有设置session的过期时间,那么session过期时间就会按照IIS设置的过期时间来执行,IIS中session默认过期时间
- 数据集数据集为Barcelona某段时间内的气象数据,其中包括温度、湿度以及风速等。本文将利用CNN来对风速进行预测。特征构造对于风速的预测
- 程序运行效率程序的运行效率分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要
- 在计算机普及的现代设计领域,文字的设计的工作很大一部分由计算机代替人脑完成了(很多平面设计软件中都有制作艺术汉字的引导,以及提供了数十上百种
- 一. 建库,建表,加约束. 1.1建库 代码如下:use master go if exists (select * from sysdat
- 方式一在Python的SQLAlchemy ORM中,您可以使用以下代码动态地更改数据模型类的表名:from sqlalchemy.ext.
- python中的email模块可以方便的解析邮件,先上代码#-*- encoding: gb2312 -*-import osimport
- Pyplotmatplotlib.pyplot是一个命令型函数集合,它可以让我们像使用MATLAB一样使用matplotlib。pyplot
- 功能:获取android设备中某一个app的cpu和内存环境:python和adb使用方法:使用adb连接android设备,打开将要测试的
- 如果直接使用base64_encode和base64_decode方法的话,生成的字符串可能不适用URL地址。下面的方法可以解决该问题:UR
- 环境Python 3.7.4pymysql8.0.11 MySQL Community Server读取图片以二进制格式读取图片with o
- 本文实例讲述了Python实现抓取HTML网页并以PDF文件形式保存的方法。分享给大家供大家参考,具体如下:一、前言今天介绍将HTML网页抓
- 目录什么是时间序列?如何在Python中绘制时间序列数据?时间序列的要素是什么?如何分解时间序列?经典分解法如何获得季节性调整值?STL分解
- 本文实例讲述了python飞机大战pygame游戏背景设计。分享给大家供大家参考,具体如下:目标背景交替滚动的思路确定显示游戏背景01. 背
- 查找资料,基本上判断python对象是否为可调用的函数,有三种方法使用内置的callable函数callable(func)用于检查对象是否
- 写程序经常需要用到从文件或者标准输入中按行读取信息,这里汇总一下。方便使用1. C++ 读取文件#include<stdio
- python 根据正则表达式提取指定的内容正则表达式是极其强大的,利用正则表达式来提取想要的内容是很方便的事。 下面演
- Div+CSS+JS组和能够实现很多好看的特殊的效果,这里推荐一款可刷新的下拉菜单:下面是js代码部分:<script type=te
- 导言在前面的两篇教程中,我们看到了如何在单一页面中显示主/从报表, 它使用DropDownList显示主记录,使用GridView或Deta