前言

大家都知道,Python自带的datetime库提供了将datetime转为ISO 8610格式的函数,但是对于时间间隔(inteval)并没有提供转换的函数,下面我们动手写一个。 下面话不多说了,来一起看看详细的介绍吧。

对于时间间隔,ISO 8601的表示形式如下:

P表示的是时间间隔的前缀。YMDHMS分别表示年月日时分秒,W表示周。T表示后面的字符是精确到天的,也就是以小时表示开始的前缀。

英文解释如下 :

[P] is used as time-interval (period) designator,preceding a data element which represents a given duration of a time-interval;

The character [T] shall be used as time designator to indicate the start of the representation of time of the day in date and time expressions.

下面是实现代码:

# -*- encoding: utf-8 -*-

import datetime

def isoformat(time):

'''

将datetime或者timedelta对象转换成ISO 8601时间标准格式字符串

:param time: 给定datetime或者timedelta

:return: 根据ISO 8601时间标准格式进行输出

'''

if isinstance(time,datetime.datetime): # 如果输入是datetime

return time.isoformat();

elif isinstance(time,datetime.timedelta): # 如果输入时timedelta,计算其代表的时分秒

hours = time.seconds // 3600

minutes = time.seconds % 3600 // 60

seconds = time.seconds % 3600 % 60

return 'P%sDT%sH%sM%sS' % (time.days,hours,minutes,seconds) # 将字符串进行连接

if __name__ == '__main__':

dtnow = datetime.datetime.now() # 获取现在时间

print(isoformat(dtnow))

dtpast = datetime.datetime(1990,12,31) # 获取过去某个时间点

print(isoformat(dtpast))

interval = dtnow - dtpast # 得到时间差

print(interval)

print(isoformat(interval))

输出结果如下:

2017-01-14T10:54:28.323000

1990-12-31T00:00:00

9511 days,10:54:28.323000

P9511DT10H54M28S

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。

python时间间隔标准化输出_利用Python将时间或时间间隔转为ISO 8601格式方法示例...相关推荐

  1. python 表格格式输出_利用python对excel中一列的时间数据更改格式操作

    问题场景:需要将下列的交期一列的数据格式更改成2019/05/10 存货编码 尺寸 数量 交期 0 K10Y0190000X B140 200 2019-05-10 00:00:00 1 K10Y01 ...

  2. python post请求 上传图片_利用python模拟实现POST请求提交图片的方法

    本文主要给大家介绍的是关于利用python模拟实现POST请求提交图片的方法,分享出来供大家参考学习,下面来一看看详细的介绍: 使用requests来模拟HTTP请求本来是一件非常轻松的事情,比如上传 ...

  3. python逐步回归筛选变量_利用python实现逐步回归

    逐步回归的基本思想是将变量逐个引入模型,每引入一个解释变量后都要进行F检验,并对已经选入的解释变量逐个进行t检验,当原来引入的解释变量由于后面解释变量的引入变得不再显著时,则将其删除.以确保每次引入新 ...

  4. python爬取音乐_利用Python对网易云音乐进行爬取!无所不爬的爬虫啊!

    今天,我们利用Python 中的selenium爬取网易云音乐中林俊杰<将故事写成我们>的评论,具体界面如下: 私信小编01 获取数十套PDF!爬虫 web都有的呢! 具体代码如下: #此 ...

  5. python做游戏代码_利用Python基础代码语句,实现2G时代文字小游戏,世界如此简单!...

    相信许多80,90后都玩过2G时代的文字小游戏,它是来自QQ家园的专属回忆.偷菜,美味小镇,大乐斗,还有精武堂等等,虽然只是文字的输出,但是留给我们这一代的人的印象却是最深刻的.曾经流量很少,响应很快 ...

  6. python ks值计算_利用Python计算KS的实例详解

    在金融领域中,我们的y值和预测得到的违约概率刚好是两个分布未知的两个分布.好的信用风控模型一般从准确性.稳定性和可解释性来评估模型.sOf免费资源网 一般来说.好人样本的分布同坏人样本的分布应该是有很 ...

  7. python实现邮件客户端_利用python实现简单的邮件发送客户端示例

    脚本过于简单,供学习和参考.主要了解一下smtplib库的使用和超时机制的实现.使用signal.alarm实现超时机制. #!/usr/bin/env python # -*- coding: ut ...

  8. python制作图片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  9. 利用python进行数据分析 笔记_利用python进行数据分析--(阅读笔记一)

    原博文 2016-06-17 23:21 − 以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频 ...

最新文章

  1. PHP在Windows环境下获取GMT时间
  2. 鸿蒙系统执行效率,华为鸿蒙手机优势:兼容所有安卓软件、比安卓运行速度快60%...
  3. Debian 9 中设置网络
  4. Hibrenate实现根据实体类自动创建表或添加字段
  5. PostgresException: 42883: function ifnull(integer, integer) does not exist
  6. 谷歌 Provisional headers are shown 和360急速模式 网络连接错误
  7. mybatis多个foreach_mybatis的foreach 删除多条使用汇总
  8. jquery修改带!important的css样式
  9. 在万能地图下载器中如何不显示谷歌电子地图上的地名文字?
  10. 【GlobalMapper精品教程】011:添加China 2000大地坐标系的方法
  11. HMC5883L指南针罗盘模块连接arduino使用的注意事项
  12. 2022-2028年中国燃气轮机行业市场专项调研及投资前景研究报告
  13. Java 自定义按时间先后顺序排序集合
  14. 用 matplotlib 绘制 3D 时间序列动态图
  15. python嗅探工具详解附源码(使用socket,带tkinter界面)
  16. IT人的学习方法论-2,讨论学习的误区
  17. flask项目之5:短信验证码发送
  18. 西电李航 操作系统课程笔记 day8 Implementation of File system
  19. HCIA第十天【寒假集训第七天】(OSPF)
  20. 开发者来稿|AMD赛灵思中文论坛分享 - 提问的智慧

热门文章

  1. 概率论考点之相关系数
  2. 步进电机的计算机控制系统设计,基于计算机并口的步进电机控制系统设计
  3. Deep Match to Rank Model for Personalized Click-Through Rate Prediction
  4. 20天从入门到项目实战:学习小组C1任务训练实录
  5. 电脑C盘空间不足,突然变红,请检查AppData\Roaming
  6. opencv之图像平移
  7. mysql按1-12月查询统计数据
  8. k8s 1.24 使用nfs,解决无法下载镜像问题
  9. 人生是一个连续的过程,没什么东西能影响人的一生,怎么选择不是问题。问题是每天都要努力 (转)...
  10. java任意音频格式转换MP3格式