时间:2021-05-22
前言
大家都知道,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 datetimedef 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.3230001990-12-31T00:00:009511 days, 10:54:28.323000P9511DT10H54M28S总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、iso8601格式转换成DateTime对象这里主要用到datetime的静态方法staticdatetimeParseExact(strings,stri
日期和时间的相互转换可以利用Python内置模块time和datetime完成,且有多种方法供我们选择,当然转换时我们可以直接利用当前时间或指定的字符串格式的时
ISO9660格式光盘刻录的技巧是:对于这种格式,有它独特的设定。一般的Toast在ISO9660格式下的缺省设定是不支持中文文件名的,而且,要求每个文件必须有
ISO9660格式光盘刻录的技巧是:对于这种格式,有它独特的设定。一般的Toast在ISO9660格式下的缺省设定是不支持中文文件名的,而且,要求每个文件必须有
ISO是以ISO-9660格式保存的光盘镜像文件,最为通用的光盘镜像格式。Iiso镜像文件是以后缀.iso命名的文件。iso镜像文件形式上只有一个文件,可以真实