Python 和 Django 时区格式 Postgres



我这里有一行代码,可以在我的开发服务器上使用 SQL Lite 的 Django 和 Python 上运行,但是当我上传我的代码时,它会给我一个关于我的时区的错误。这是我的代码。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 对象返回的字符串的格式设置为没有冒号的时区偏移量。这意味着 Python <3.7 中的strptime可以处理它。

最新更新