利用Python将时间或时间间隔转为ISO 8601格式方法示例


Posted in Python onSeptember 05, 2017

前言

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

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

利用Python将时间或时间间隔转为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和OpenCV库将URL转换为OpenCV格式的方法
Mar 27 Python
利用Python爬虫给孩子起个好名字
Feb 14 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
Python制作词云的方法
Jan 03 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
对python requests发送json格式数据的实例详解
Dec 19 Python
详解python算法之冒泡排序
Mar 05 Python
python爬虫 批量下载zabbix文档代码实例
Aug 21 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
matplotlib实现数据实时刷新的示例代码
Jan 05 Python
详解用 python-docx 创建浮动图片
Jan 24 Python
详解python的xlwings库读写excel操作总结
Feb 26 Python
python进程管理工具supervisor的安装与使用教程
Sep 05 #Python
基于Django模板中的数字自增(详解)
Sep 05 #Python
用python结合jieba和wordcloud实现词云效果
Sep 05 #Python
python基础_文件操作实现全文或单行替换的方法
Sep 04 #Python
python 生成器协程运算实例
Sep 04 #Python
python 文件操作删除某行的实例
Sep 04 #Python
Django数据库操作的实例(增删改查)
Sep 04 #Python
You might like
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
2008/09/10 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
基于jQuery试卷自动排版系统
2010/07/18 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
Angular2 http jsonp的实例详解
2017/08/31 Javascript
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
python+opencv实现阈值分割
2018/12/26 Python
Django框架中间件(Middleware)用法实例分析
2019/05/24 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
C#面试题
2016/05/06 面试题
汽车专业毕业生推荐信
2013/11/12 职场文书
外贸英语毕业生自荐信
2013/11/14 职场文书
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
旅游活动总结
2014/08/27 职场文书
实验心得体会
2014/09/05 职场文书
教师节祝酒词
2015/08/11 职场文书
话题作文之生命的旋律
2019/12/17 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript