利用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利用多进程将大量数据放入有限内存的教程
Apr 01 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
python装饰器实例大详解
Oct 25 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
Python列表切片操作实例总结
Feb 19 Python
详解Python做一个名片管理系统
Mar 14 Python
Python基础之条件控制操作示例【if语句】
Mar 23 Python
解决Pycharm后台indexing导致不能run的问题
Jun 27 Python
python中web框架的自定义创建
Sep 08 Python
Tensorflow轻松实现XOR运算的方式
Feb 03 Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 Python
Python+pyaudio实现音频控制示例详解
Jul 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实现简单洗牌算法
2013/06/18 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
PHP命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
javascript表单验证大全
2015/08/12 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
360提示[高危]使用存在漏洞的JQuery版本的解决方法
2017/10/27 jQuery
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
Python爬取国外天气预报网站的方法
2015/07/10 Python
Django中的FBV和CBV用法详解
2019/09/15 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
旧时光糖果:Old Time Candy
2018/02/05 全球购物
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
社团活动策划书范文
2014/01/09 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
授权委托书协议书
2014/10/16 职场文书
付款承诺函范文
2015/01/21 职场文书
综合实践活动报告
2015/02/05 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
2015入党自传书范文
2015/06/26 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python