python - Python 和 Django 时区格式 Postgres
问题描述
我在这里有一行代码可以在我的 Django 和 Python 开发服务器上使用 SQL Lite,但是当我上传我的代码时,它给了我一个关于我的时区的错误。这是我的代码。Postgres 不喜欢末尾的 %z ,但是 SQL Lite 很好。我该怎么做才能在我的 Heroku Postgres 生产环境中解决这个问题?谢谢
new_event.start = datetime.strptime(str(obj.start_date) ,'%Y-%m-%d %H:%M:%S%z')
错误消息:时间数据 '2020-10-08 12:17:51-04:00' 与格式 '%Y-%m-%d %H:%M:%S%z' 不匹配
解决方案
假设您有充分的理由回到起点:
dt
datetime.datetime(2020, 10, 8, 9, 33, 37, 216144, tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=-420, name=None))
datetime.strftime(dt, '%Y-%m-%d %H:%M:%S%z')
'2020-10-08 09:33:37-0700'
dt_2 = datetime.strptime(datetime.strftime(dt, '%Y-%m-%d %H:%M:%S%z'), '%Y-%m-%d %H:%M:%S%z')
dt_2
datetime.datetime(2020, 10, 8, 9, 33, 37, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200)))
这使得从 datetime 对象返回的字符串被格式化为不带冒号的时区偏移量。这意味着strptime
在 Python < 3.7 中可以处理它。
推荐阅读
- python - 仅使用 bs4 和请求获取原始链接
- python - Python3:您是否应该在 requirements.txt 中包含您不一定在项目中使用的依赖项?
- html - 即使应用正确的代码,最大宽度也不起作用。
- c# - TPL 数据流:为什么 EnsureOrdered = false 会破坏此 TransformManyBlock 的并行性?
- android - Android:表格行与父宽度不匹配
- python - 如何在 pyplot 中保持网格间距一致
- ios - 无法在 (UITextField) 上设置 (fieldImage) 用户定义的检查属性
- javascript - React Redux 不断返回多个 reducer 对象
- css - 多个背景 css 图像(一个固定,另一个滚动)全部显示为滚动
- svg - 调整大小+移动时 SVG 元素被切断