相关疑难解决方法(0)

带有冒号的时区偏移的日期时间 strptime 问题

目前,我们正在开发一个应用程序,该应用程序尝试使用 2.db.transport.rest API 计算从 a 到 b 的路线的旅行时间。

不幸的是,我们正在从该 API 接收带有时区偏移量的时间戳,例如+01:00. 我们需要的是一个没有:, 所以的时区偏移量+0100

以下示例在 Linux 上使用 Python 3.6.7 给出错误:

from datetime import datetime
datetimestring = "2019-01-19T15:13:00.000+01:00"
datetime.strptime(datetimestring, '%Y-%m-%dT%H:%M:%S.%f%z')
Run Code Online (Sandbox Code Playgroud)

此示例代码产生此异常:

ValueError: time data '2019-01-19T15:13:00.000+01:00' does not match format '%Y-%m-%dT%H:%M:%S.%f%z'
Run Code Online (Sandbox Code Playgroud)

如果我们:从它工作的输入字符串中删除,则不会抛出异常。

当我们在 Python 3.7.2 上的 Windows 上运行该代码时,该代码也有效。

可能是因为不同的 Python 版本?我们如何解析或转换它而不会出错?

python python-datetime python-3.6 python-3.7

7
推荐指数
1
解决办法
3227
查看次数

如何使用strptime解析str(my_datetime)?

这是日期时间的默认字符串表示形式

>>> from datetime import datetime, timezone
>>> dt = datetime(2017, 1, 1, tzinfo=timezone.utc)
>>> print(dt)
2017-01-01 00:00:00+00:00
Run Code Online (Sandbox Code Playgroud)

用它解析的正确格式字符串是datetime.strptime什么?也就是说,用什么代替“ ???” 查看以下结果:

>>> from dateutil.parser import parse
>>> parse(date_str) == datetime.strptime('???', date_str)
True
Run Code Online (Sandbox Code Playgroud)

python timezone datetime strptime

5
推荐指数
1
解决办法
225
查看次数

在 Python 中将带有 +00:00 的字符串转换为日期时间

我不知道如何将这个强转换为日期时间对象。这是我尝试过的:

import datetime
date_time_str = "2021-07-28 11:19:36.824150+00:00"
date_time_obj = datetime.datetime.strptime(date_time_str, '%y-%m-%d %H:%M:%S.%f%z')
Run Code Online (Sandbox Code Playgroud)

然而,我不断得到

ValueError:时间数据“2021-07-28 11:19:36.824150+00:00”与格式不匹配。

正确的格式是什么?

python formatting timestamp

4
推荐指数
1
解决办法
5748
查看次数