Python处理ISO 8601日期时间
文章目录
- 一、ISO 8601日期时间
- 1. 简介
- 2. 格式
- 3. 时区划分
- 二、Python处理ISO 8601日期时间
- 1. 将 ISO 8601 转化为 UTC 标准日期时间 / 本地时间
- 2. 两个 ISO 8601 日期时间的差值
- 3. 时间戳转ISO 8601日期时间
- 参考
一、ISO 8601日期时间
1. 简介
国际标准ISO 8601,是国际标准化组织的日期和时间的表示方法,全称为《数据存储和交换形式·信息交换·日期和时间的表示方法》
2. 格式
ISO 8601日期格式
YYYY-MM-DDThh:mm:ss[.mmm]TZD
各字段含义如下:
字段 含义 YYYY
表示四位数的年份 MM
表示两位数的月份 DD
表示两位数的天(day of the month),从01到31 T
是用来指示时间元素的开始字符 hh
表示两位数的小时,从00到23,不包括AM/PM mm
表示两位数的分钟,从00到59 ss
表示两位数的秒,从00到59 mmm
表示三位数的毫秒数,从000到999 TZD
表示时区指示符:Z或+hh:mm或-hh:mm,+或-表示时区距离UTC(世界标准时间)时区多远。
例如:CST(中国标准时间):UTC +08:00,EST(东部标准时间):UTC -05:00,CST(中部标准时间):UTC -06:00样例
2022-07-24T00:14:01.954+08:00
:表示世界标准时间UTC为2022年07月24日00点14分01秒954毫秒,当前地区所在时区距离UTC标准时提前08时00分
3. 时区划分
- 世界时区图
地球上共有360度经度,按照15度一个时区,将全球分为24个时区。以0度经线开始计算,往东方向,依次分为东一区、东二区、东三区…东十二区;往西方向,依次为西一区、西二区、西三区…西十二区。其中西十二区和东十二区共占一个时区,成为东西十二区。其中,中时区即世界标准时间UTC,向东每经过一个时区,+1小时,向西每经过一个 时区,-1小时。例如首都北京处于东八区,那么就+8小时,即2022-07-24T00:14:01.954+08:00中的+08:00
二、Python处理ISO 8601日期时间
1. 将 ISO 8601 转化为 UTC 标准日期时间 / 本地时间
- 截取UTC 标准日期时间
2022-07-24T00:14:01.954+08:00
—>2022-07-24 00:14:01
import timet0 = '2022-07-24T00:14:01.954+08:00'format1 = "%Y-%m-%dT%H:%M:%S.%f+08:00"
t1 = time.strptime(t0, format1) # time.struct_time(tm_year=2022, tm_mon=7, tm_mday=24, tm_hour=0, tm_min=14, tm_sec=1, tm_wday=6, tm_yday=205, tm_isdst=-1)format2 = "%Y-%m-%d %H:%M:%S"
t2 = time.strftime(format2, t1) # 2022-07-24 00:14:01
- 转化为本地日期时间
2022-07-24T00:14:01.954+08:00
—>2022-07-24 08:14:01
import dateutil.parser
from datetime import timezone# 将字符串时间 转化为 datetime 对象
dateObject = dateutil.parser.isoparse('2022-07-24T00:14:01.954+08:00') # 2022-07-24 00:14:01.954000+08:00
# 根据时区 转化为 datetime 数据
localdt = dateObject.replace(tzinfo=timezone.utc).astimezone(tz=None) # 2022-07-24 08:14:01.954000+08:00
# 产生本地格式 字符串
localtime = localdt.strftime('%Y-%m-%d %H:%M:%S') # 2022-07-24 08:14:01
2. 两个 ISO 8601 日期时间的差值
2022-07-24T00:14:02.954+08:00
- 2022-07-24T00:14:01.954+08:00
= 01s
from datetime import datetimeformat = "%Y-%m-%dT%H:%M:%S.%f+08:00"t0 = '2022-07-24T00:14:01.954+08:00'
t1 = '2022-07-24T00:14:02.954+08:00's0 = datetime.strptime(t0, format)
s1 = datetime.strptime(t1, format)sub = (s1 - s0).seconds # 1
3. 时间戳转ISO 8601日期时间
2022-07-24 01:40:02.867706
—>2022-07-23T17:40:02.867706+08:00
import time
import datetime# datetime时间戳
t0 = datetime.datetime.now() # 2022-07-24 01:40:02.867706# ISO 8601本地
t1 = datetime.datetime.now().isoformat() # 2022-07-24T01:40:02.867706# UTC至ISO 8601
t2 = datetime.datetime.utcnow().isoformat() # 2022-07-23T17:40:02.867706# 本地到ISO 8601没有微秒
t3 = datetime.datetime.now().replace(microsecond=0).isoformat() # 2022-07-24T01:40:02# 带有TimeZone信息的UTC到ISO 8601
t4 = datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat() # 2022-07-23T17:40:02.867706+00:00# 带有TimeZone信息的本地ISO 8601
utc_offset_sec = time.altzone if time.localtime().tm_isdst else time.timezone
utc_offset = datetime.timedelta(seconds=-utc_offset_sec)
t5 = datetime.datetime.now().replace(tzinfo=datetime.timezone(offset=utc_offset)).isoformat() # 2022-07-24T01:40:02.867706+08:00
参考
ISO 8601日期格式与持续时间格式
世界时区
地理小常识:时区的计算
python 时间戳转iso 8601_Python中的ISO时间(ISO 8601)
python中时间转换
python-ISO格式 转化为 本地时间
Python处理ISO 8601日期时间相关推荐
- 一起Polyfill系列:让Date识别ISO 8601日期时间格式
一.什么是ISO 8601日期时间格式 ISO 8601是国际标准化组织制定的日期时间表示规范,全称是<数据存储和交换形式·信息交换·日期和时间的表示方法>. 示例: 1. 2014-12 ...
- java8 iso8601,Java 8 DateTimeFormatter使用偏移拒绝正确的ISO 8601日期/时间
这有点复杂. As jvdmr says,Xs的数量很重要. XXXXX将识别-08:30:15,但不是-083015. XXXX将承认后者,但不承认前者. 为了考虑所有可能的示例格式,我们需要指定不 ...
- java yyyy-mm-ddthh:mm:ssz,解析格式为YYYY-MM-DDTHH-MM-SSZ的ISO 8601日期时间
I have a large dataframe with time stamps that look like this: "2019-05-15T01:42:15.072Z" ...
- ISO 8601 utc 时间
维基百科,自由的百科全书 跳转到导航跳转到搜索 ISO 8601 数据元素和交换格式 - 信息交换 - 日期和时间的表示是一种涵盖日期和时间相关数据交换的国际标准.它由国际标准化组织(ISO)发布,并 ...
- ISO 8601日期格式与持续时间格式
ISO 8601日期格式与持续时间格式 国际标准ISO 8601,是国际标准化组织的日期和时间的表示方法,全称为<数据存储和交换形式·信息交换·日期和时间的表示方法>.目前是2004年12 ...
- java ISO 8601 日期格式进行转换
ISO 8601 日期格式进行转换 痛点 懂的都懂,烦死啦!嘤嘤嘤. 时间是让人猝不及防的东西,有时天晴,有时雨.如果时间有个倒退时光的API,我愿意回到原始社会,那里没有汽车,没有高楼,没有电脑,更 ...
- Python将字符串转换为日期时间
In this tutorial, we'll see how to convert string to datetime in python. 在本教程中,我们将看到如何在python中将字符串转换 ...
- Java格式化ISO 8601 日期格式
Java格式化ISO 8601 日期格式 public static void main(String[] args) {SimpleDateFormat s = new SimpleDateForm ...
- java iso 8601_如何在iOS上获得ISO 8601日期?
一个经常被忽视的问题是ISO 8601格式的字符串可能有毫秒而不是 . 换句话说,"2016-12-31T23:59:59.9999999"和"2016-12-01T00 ...
最新文章
- Js插入元素到数组的头部和尾部 unshift push
- 10亿级数据规模的半监督图像分类模型,Imagenet测试精度高达81.2% | 技术头条...
- 小程序读取富文本mysql存储_微信小程序API 富文本·EditorContext实例
- ActiveReport的小数显示方法
- 如何保证RabbitMQ消息队列的高可用?
- python rpy2后封装_转换rpy2的python对象
- 如何将java程序打包成exe文件?
- AI 新基建怎么做,腾讯云正式公布全景布局
- js中引用类型赋值(拷贝)问题
- mysql创建数据库sql语句_创建数据库的SQL语句:mysql数据库
- 迅雷快车旋风链接转换成普通链接工具
- 程序员风格的修真小说之炫小说
- 一曲京声人去远——纪念刘大中校友100周年诞辰
- XML转Json 设置指定节点为数组
- .o0博客导读0o. 1/23/2016最后更新
- 读经典《C程序设计语言》(The C Programming Language)
- Lua入门(1) 编译环境、变量类型与三种结构的实现
- Java的 Class字节码文件结构和内容全面解析【两万字】
- 用python画股票分时图 github_GitHub - DogeWatch/stock: stock,股票系统。使用python进行开发。...
- oracle sql语句中like %参数%的用法