python时间间隔标准化输出_利用Python将时间或时间间隔转为ISO 8601格式方法示例...
前言
大家都知道,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格式方法示例...相关推荐
- python 表格格式输出_利用python对excel中一列的时间数据更改格式操作
问题场景:需要将下列的交期一列的数据格式更改成2019/05/10 存货编码 尺寸 数量 交期 0 K10Y0190000X B140 200 2019-05-10 00:00:00 1 K10Y01 ...
- python post请求 上传图片_利用python模拟实现POST请求提交图片的方法
本文主要给大家介绍的是关于利用python模拟实现POST请求提交图片的方法,分享出来供大家参考学习,下面来一看看详细的介绍: 使用requests来模拟HTTP请求本来是一件非常轻松的事情,比如上传 ...
- python逐步回归筛选变量_利用python实现逐步回归
逐步回归的基本思想是将变量逐个引入模型,每引入一个解释变量后都要进行F检验,并对已经选入的解释变量逐个进行t检验,当原来引入的解释变量由于后面解释变量的引入变得不再显著时,则将其删除.以确保每次引入新 ...
- python爬取音乐_利用Python对网易云音乐进行爬取!无所不爬的爬虫啊!
今天,我们利用Python 中的selenium爬取网易云音乐中林俊杰<将故事写成我们>的评论,具体界面如下: 私信小编01 获取数十套PDF!爬虫 web都有的呢! 具体代码如下: #此 ...
- python做游戏代码_利用Python基础代码语句,实现2G时代文字小游戏,世界如此简单!...
相信许多80,90后都玩过2G时代的文字小游戏,它是来自QQ家园的专属回忆.偷菜,美味小镇,大乐斗,还有精武堂等等,虽然只是文字的输出,但是留给我们这一代的人的印象却是最深刻的.曾经流量很少,响应很快 ...
- python ks值计算_利用Python计算KS的实例详解
在金融领域中,我们的y值和预测得到的违约概率刚好是两个分布未知的两个分布.好的信用风控模型一般从准确性.稳定性和可解释性来评估模型.sOf免费资源网 一般来说.好人样本的分布同坏人样本的分布应该是有很 ...
- python实现邮件客户端_利用python实现简单的邮件发送客户端示例
脚本过于简单,供学习和参考.主要了解一下smtplib库的使用和超时机制的实现.使用signal.alarm实现超时机制. #!/usr/bin/env python # -*- coding: ut ...
- python制作图片墙_利用python生成照片墙的示例代码
PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...
- 利用python进行数据分析 笔记_利用python进行数据分析--(阅读笔记一)
原博文 2016-06-17 23:21 − 以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频 ...
最新文章
- PHP在Windows环境下获取GMT时间
- 鸿蒙系统执行效率,华为鸿蒙手机优势:兼容所有安卓软件、比安卓运行速度快60%...
- Debian 9 中设置网络
- Hibrenate实现根据实体类自动创建表或添加字段
- PostgresException: 42883: function ifnull(integer, integer) does not exist
- 谷歌 Provisional headers are shown 和360急速模式 网络连接错误
- mybatis多个foreach_mybatis的foreach 删除多条使用汇总
- jquery修改带!important的css样式
- 在万能地图下载器中如何不显示谷歌电子地图上的地名文字?
- 【GlobalMapper精品教程】011:添加China 2000大地坐标系的方法
- HMC5883L指南针罗盘模块连接arduino使用的注意事项
- 2022-2028年中国燃气轮机行业市场专项调研及投资前景研究报告
- Java 自定义按时间先后顺序排序集合
- 用 matplotlib 绘制 3D 时间序列动态图
- python嗅探工具详解附源码(使用socket,带tkinter界面)
- IT人的学习方法论-2,讨论学习的误区
- flask项目之5:短信验证码发送
- 西电李航 操作系统课程笔记 day8 Implementation of File system
- HCIA第十天【寒假集训第七天】(OSPF)
- 开发者来稿|AMD赛灵思中文论坛分享 - 提问的智慧
热门文章
- 概率论考点之相关系数
- 步进电机的计算机控制系统设计,基于计算机并口的步进电机控制系统设计
- Deep Match to Rank Model for Personalized Click-Through Rate Prediction
- 20天从入门到项目实战:学习小组C1任务训练实录
- 电脑C盘空间不足,突然变红,请检查AppData\Roaming
- opencv之图像平移
- mysql按1-12月查询统计数据
- k8s 1.24 使用nfs,解决无法下载镜像问题
- 人生是一个连续的过程,没什么东西能影响人的一生,怎么选择不是问题。问题是每天都要努力 (转)...
- java任意音频格式转换MP3格式