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

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

Barbara Streisand
Barbara Streisand原创
2024-11-29 19:37:111061浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn