首页 > 后端开发 > Python教程 > 如何在 Python 中将带有时区偏移的时间戳转换为 DateTime 对象?

如何在 Python 中将带有时区偏移的时间戳转换为 DateTime 对象?

Barbara Streisand
发布: 2024-11-29 19:37:11
原创
979 人浏览过

How to Convert Timestamps with Timezone Offsets to DateTime Objects in Python?

使用 strptime 将带有偏移量的时间戳转换为日期时间对象

问题

转换格式为“2012-07-24T23:14:29-”的时间戳07:00" 使用 strptime() 转换为日期时间对象可能会出现问题由于结束时的时间偏移(-07:00)。如果没有偏移量,可以按如下方式使用 strptime():

time_str = "2012-07-24T23:14:29"
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S')
登录后复制

但是,由于不支持 'z' 指令,使用提供的时间偏移量会导致 ValueError。

解决方法

主要有两种解决方法:

1.使用 strptime() 忽略时区:

在解析之前从时间戳中删除时区部分:

time_obj = datetime.datetime.strptime(time_str[:19], '%Y-%m-%dT%H:%M:%S')
登录后复制

2.使用 dateutil.parser:

dateutil 模块提供了支持时区的解析函数:

from dateutil.parser import parse
time_obj = parse(time_str)
登录后复制

Python 3.2 及更新版本

适用于 Python 3.2 及以上版本,时区支持得到了增强。 %z 将在调整格式字符串后起作用,如下所示:

  • 删除格式字符串中的最后一个冒号。
  • 删除 %z 说明符之前的 '-'。
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S%z')
登录后复制

以上是如何在 Python 中将带有时区偏移的时间戳转换为 DateTime 对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板