利用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 ORM框架SQLAlchemy学习笔记之数据查询实例
Jun 10 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
Apr 28 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
使用python装饰器计算函数运行时间的实例
Apr 21 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
Jun 24 Python
Python运行不显示DOS窗口的解决方法
Oct 22 Python
python实现合并多个list及合并多个django QuerySet的方法示例
Jun 11 Python
Python paramiko模块使用解析(实现ssh)
Aug 30 Python
Python如何使用turtle库绘制图形
Feb 26 Python
基于Tensorflow一维卷积用法详解
May 22 Python
python爬虫搭配起Bilibili唧唧的流程分析
Dec 01 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中与数组相关的函数
2007/03/22 PHP
php下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
PHP基于openssl实现非对称加密代码实例
2020/06/19 PHP
accesskey 提交
2006/06/26 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
Jquery 整理元素选取、常用方法一览表
2016/11/26 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
教育科学研究生自荐信
2013/10/09 职场文书
服务员岗位职责
2014/01/29 职场文书
《梅兰芳学艺》教学反思
2014/02/24 职场文书
诚信考试承诺书
2014/03/27 职场文书
学校读书活动总结
2014/06/30 职场文书
客房领班岗位职责
2015/02/11 职场文书
春节慰问信范文
2015/02/15 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
信访维稳承诺书
2015/05/04 职场文书
认识实习感想
2015/08/10 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python