python - 日期时间问题的断言
问题描述
我正在对此进行 pytest,我看到中间有 T 导致我出现问题,这是我已将其更改为 datetime 的类型问题,因为它的类型仍然存在此问题。
assert model_setup.start_model_duration == start_model_duration
E AssertionError: assert datetime.datetime(2019, 6, 2, 15, 4, 5) == '2019-06-02T15:04:05'
E +datetime.datetime(2019, 6, 2, 15, 4, 5)
E -'2019-06-02T15:04:05'
所以后来我把这两个做成了字符串,但中间的 T 仍然引起了问题
assert str(model_setup.start_model_duration) == str(start_model_duration)
E AssertionError: assert '2019-06-02 15:04:05' == '2019-06-02T15:04:05'
E - 2019-06-02T15:04:05
E ? ^
E + 2019-06-02 15:04:05
E ? ^
解决方案
您正在看到 isoformat:
>>> dt = datetime.datetime(2019, 6, 2, 15, 4, 5)
>>> dt.isoformat()
'2019-06-02T15:04:05'
因此,您可以使用以下任何一种:
# convert the datetime to a string
assert model_setup.start_model_duration.isoformat() == start_model_duration
# convert the string to a datetime
assert model_setup.start_model_duration == datetime.fromisoformat(start_model_duration)
推荐阅读
- azure-data-factory - 如何使基于 IF 任务的 Azure 数据工厂管道失败
- python - 如何在 python pandas 的列中进行条件操作?
- java - 提供一个空列表给一个可选的?
- entity-framework - “LINQ 在哪里”的最佳方式
- “ 什么时候
- 有很多元素吗?
- typescript - 尝试访问数据库时,带有 `Electron` 的 `TypeORM` 会导致“浏览器环境不支持此选项/功能”错误
- google-cloud-storage - 无法将 GCS 存储桶从一个帐户转移到另一个帐户
- python - 是否有针对非线性和非标量目标函数的 Python 优化包
- flutter - 为什么最终变量 incrDecr 在 onPressed() 函数中不可用
- amazon-web-services - AWS 中的 R5 与 T3 服务器在网络带宽方面有什么区别
- xml - Odoo13 - 从右上角替换 UserMenu