利用Python将时间或时间间隔转为ISO 8601格式方法示例
作者:TheOneGIS 发布时间:2022-12-06 22:18:25
标签:python,iso8601,时间
前言
大家都知道,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 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
来源:http://blog.csdn.net/theonegis/article/details/54425636
0
投稿
猜你喜欢
- 我们在写代码的过程中,会经常使用到for循环,去循环列表,那么如果我们拿到一个类型为str的列表,对它进行for循环,结果看下面的代码和图:
- 长话短说:本人下载 matplotlib 花了大概三个半小时屡屡碰壁,险些暴走。为了不让新来的小伙伴走我的弯路,特意创作本片文章指明方向。1
- 本文介绍了纯python进行矩阵的相乘运算的方法示例,分享给大家,具体如下:def matrixMultiply(A, B):
- 摘要:主要介绍一些python的文件读取功能,文件内容修改,文件名后缀更改等操作。批处理文件功能import ospath1 = '
- 本文介绍了一系列安装教程,具体如下1.安装Python版本选择是3.5.1,因为网上有些深度学习实例用的就是这个版本,跟他们一样的话可以避免
- 主要功能在copyFiles()函数里实现,如下:def copyFiles(src, dst): sr
- 昨天晚上群里有朋友采集网页时发现file_get_contents 获得的网页保存到本地为乱码,响应的header 里 Content-En
- --SQL正则替换函数 代码如下:CREATE function dbo.regexReplace ( @source ntext, --
- 先说一下最土的一种方法:Html:<div class="tab-head">
- 5.0版本和之前版本的差异较大,本篇对熟悉3.2版本的用户给出了一些5.0的主要区别。URL和路由5.0的URL访问不再支持普通URL模式,
- wheel文件Wheel和Egg都是python的打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改
- Python画图(线条颜色、大小、线形)先放基础代码,下面讲述效果:import matplotlib.pyplot as pltimpor
- 前言平台:windows 10.0python 3.8oraclemysql目的需要通过python处理数据,并将结果保存至SQL数据库中,
- 字符串类型代码的执行字符串类型代码的执行函数有三个,都是Python的内置函数。eval()执行字符串类型的代码,并返回最终结果。exec(
- python3 manage.py makemigrations # 生成数据库迁移文件python3 manage.py migrate
- 1. 建表的语法建表属于 DDL 语句,DDL 语句包括:create、drop、alter…create table
- 如何在页面中对不同的数据进行相同的处理?selectId.asp' 列出所有客户的客户名称<html><
- 前言今天制作的这一款能在B站能指定直播间、自动发弹幕的功能的脚本,因为没做那么多的功能,所以代码很简单,适合刚入门的同学学习先打开一个直播间
- jQuery能够极大提高html的编写效率,其中checkbox的选中判断有几种:1, $(checkbox的id).prop("
- 本文实例讲述了js类的继承定义与用法。分享给大家供大家参考,具体如下:如何实现类的继承呢?有如下2个构造函数:function People