利用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设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
使用Python内置的模块与函数进行不同进制的数的转换
Mar 12 Python
深入解析Python编程中super关键字的用法
Jun 24 Python
Python的Tornado框架实现图片上传及图片大小修改功能
Jun 30 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
Jun 25 Python
Django之无名分组和有名分组的实现
Apr 16 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
Aug 20 Python
python中@property和property函数常见使用方法示例
Oct 21 Python
使用matlab或python将txt文件转为excel表格
Nov 01 Python
用python爬取历史天气数据的方法示例
Dec 30 Python
pytorch掉坑记录:model.eval的作用说明
Jun 23 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/06/15 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
JavaScript关于select的相关操作说明
2010/01/13 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
JS实现页面打印功能
2017/03/16 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
vue里如何主动销毁keep-alive缓存的组件
2019/03/21 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
[01:58]最残酷竞争 2016国际邀请赛中国区预选赛积分循环赛回顾
2016/06/28 DOTA
以windows service方式运行Python程序的方法
2015/06/03 Python
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
python并发2之使用asyncio处理并发
2017/12/21 Python
python生成lmdb格式的文件实例
2018/11/08 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
Python如何实现FTP功能
2020/05/28 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
泰国网上购物:Shopee泰国
2018/09/14 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
计算机科学系职业生涯规划书
2014/03/08 职场文书
《春晓》教学反思
2014/04/20 职场文书
和谐社区口号
2014/06/19 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
如何使JavaScript休眠或等待
2021/04/27 Javascript
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
2021/12/06 HTML / CSS
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL