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

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

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

前言

大家都知道,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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。

总结

以上是内存溢出为你收集整理的利用Python将时间或时间间隔转为ISO 8601格式方法示例全部内容,希望文章能够帮你解决利用Python将时间或时间间隔转为ISO 8601格式方法示例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1201645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存