Python实现自动计算特定格式的时间差

目录
  • 功能
  • 附加函数
  • 实例如下
    • 一、获取 "2030-12-02T17:00:00+08:00" 3小时后的时间格式 "2030-12-02T20:00:00+08:00"
    • 二、计算两个时间之间的差值,精确到秒
    • 三、计算两个时间之间的差值,可以精确到毫秒

功能

输入一个特定格式的时间戳,自动获取前进或者后退多少小时之后的时间

附加函数

时间戳转换函数

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 

到此这篇关于Python实现自动计算特定格式的时间差的文章就介绍到这了,更多相关Python 时间差计算内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python利用datetime模块计算时间差

    今天写了点东西,要计算时间差,我记得去年写过,于是今天再次mark一下,以免自己忘记 In [27]: from datetime import datetime In [28]: a=datetime.now() In [29]: b=datetime.now() In [32]: a Out[32]: datetime.datetime(2015, 4, 7, 4, 30, 3, 628556) In [33]: b Out[33]: datetime.datetime(2015, 4, 7

  • 利用python计算时间差(返回天数)

    前言 本文主要给大家介绍了关于python计算时间差(返回天数)的相关资料,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法如下: 将时间戳转换成日期格式: import time time_stamp = 1547445305 time_arr = time.localtime(time_stamp) data_time = time.strftime("%Y-%m-%d %H:%M:%S", time_arr) 计算两个日期格式相差的天数: def time_l

  • python计算时间差的方法

    本文实例讲述了python计算时间差的方法.分享给大家供大家参考.具体分析如下: 1.问题: 给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年? 2.解决方法: 标准模块datetime和第三方包dateutil(特别是dateutil的rrule.count方法)能非常简单迅速的帮你解决这个问题. from dateutil import rrule import datetime def weeks_between(start_date, end_date): week

  • Python3显示当前时间、计算时间差及时间加减法示例代码

    摘要 在使用Python写程序时,经常需要输出系统的当前时间以及计算两个时间之间的差值,或者将当前时间加减一定时间(天数.小时.分钟.秒)来得到新的时间,这篇文章就系统的对这些进行总结.码字不易,喜欢请点赞!!! 包 这里主要使用Python的datetime包实现上述功能. 1.输出当前系统时间 输出结果从总到右分别为Year.Month.Day.Hour.Minute.Second,最后一个MicroSeconds就不用管了. 2.标准化输出方法strftime() 其中: %Y : 表示年

  • Python实现自动计算特定格式的时间差

    目录 功能 附加函数 实例如下 一.获取 "2030-12-02T17:00:00+08:00" 3小时后的时间格式 "2030-12-02T20:00:00+08:00" 二.计算两个时间之间的差值,精确到秒 三.计算两个时间之间的差值,可以精确到毫秒 功能 输入一个特定格式的时间戳,自动获取前进或者后退多少小时之后的时间 附加函数 时间戳转换函数 def date_time_str_to_long(input_date_time_string): ''' 标准时

  • Python实现按特定格式对文件进行读写的方法示例

    本文实例讲述了Python实现按特定格式对文件进行读写的方法.分享给大家供大家参考,具体如下: #! /usr/bin/env python #coding=utf-8 class ResultFile(object): def __init__(self, res): self.res = res def WriteFile(self): fp = open('pre_result.txt', 'w') print 'write start!' try: for item in self.re

  • Python批量生成特定尺寸图片及图画任意文字的实例

    因为工作需要生成各种大小的图片,所以写了个小脚本,顺便支持了下图画文字内容. 具体代码如下: from PIL import Image, ImageDraw, ImageFont ''' Auth: Xiaowu Chen Note: Please install [pillow] library before run this script. ''' def draw_image(new_img, text, show_image=False): text = str(text) draw

  • Python实现把json格式转换成文本或sql文件

    python如何将json格式的数据快速的转化成指定格式的数据呢?或者转换成sql文件? 下面的例子是将json格式的数据准换成以#_#分割的文本数据,也可用于生成sql文件. [root@bogon tutorial]# vi json2txt.py #-*- coding: UTF-8 -*- import json data = [] with open('./tencent_test.json') as f: for line in f: data.append(json.loads(l

  • python解析基于xml格式的日志文件

    大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波Python解析日志的小脚本. 首先,同样的先看看日志是个啥样. 都是xml格式的,是不是看着就头晕了??没事,我们先来分析一波. 1.每一段开头都是catalina-exec,那么我们就按catalina-exec来分,分了之后,他们就都是一段一段的了. 2.然后,我们再在已经分好的一段段里面分,找出你要分割的关键字,因为是xml的,所以,接下来的工作就简单了,都是一个头一个尾的. 3.但是还有一个问题,有可

  • python 把数据 json格式输出的实例代码

    有个要求需要在python的标准输出时候显示json格式数据,如果缩进显示查看数据效果会很好,这里使用json的包会有很多操作 import json date = {u'versions': [{u'status': u'CURRENT', u'id': u'v2.3', u'links': [{u'href': u'http://controller:9292/v2/', u'rel': u'self'}]}, {u'status': u'SUPPORTED', u'id': u'v2.2'

  • python实现将pvr格式转换成pvr.ccz的方法

    本文实例讲述了python实现将pvr格式转换成pvr.ccz的方法.分享给大家供大家参考.具体实现方法如下: import zlib import struct import sys pvr = sys.argv[1] ccz = pvr + ".ccz" pvr = open(pvr).read() ccz = open(ccz, "wb") ccz.write(struct.pack(">4sHHII","CCZ!"

  • python中解析json格式文件的方法示例

    前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等).这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易于机器解析和生成. 本文主要介

  • 在python中按照特定顺序访问字典的方法详解

    最近使用python写一些东西,在参考资料的时候发现字典是没有顺序的,那么怎么样按照一定顺序访问字典呐,我找到了一个小方法: 假设一个字典是: D = {'a': '1', 'b': '2', 'c': '3'} 如果我们要按照a, b, c的顺序访问字典,可以借助一个列表,比如说: L = list(D.keys()) L.sort() for key in L: print(key, 'is' D[key]) 输出为: a is 1 b is 2 c is 3 需要倒序的话只需使用倒序函数排

  • Python实现对特定列表进行从小到大排序操作示例

    本文实例讲述了Python实现对特定列表进行从小到大排序操作.分享给大家供大家参考,具体如下: 1.在系统内新建文件rizhireplacelist.txt root@kali:~# cd python/ root@kali:~/python# ls 111.txt           listsalaryver2.py  readfile2.py            rizhireplacelist.txt  rizhi.txt            tixingexcel.txt    

随机推荐