【问题标题】:django postgresql - extra datetimedjango postgresql - 额外的日期时间
【发布时间】:2015-12-09 13:17:15
【问题描述】:

在我的项目中,我有带有日期时间字段的对象

startdate = models.DateTimeField(default="1999-01-01 00:00:00")

我需要创建新对象并发送 datetime = "2015-12-9"

calen = models.calendar()
calen.startdate = datetime.strptime(request.POST["date"], "%Y-%m-%d")
calen.save()

在这个对象中我看到了

    calen.startdate => datetime.datetime(2015, 12, 9, 0, 0)

好的。

在 pqAdmin3 中,postgres DB 这个字段 = "2015-12-09 08:00:00+02"

错误的 8 小时!!!! ->6+2

当我选择这个对象时 calen.startdate

datetime.datetime(2015, 12, 9, 6, 0, tzinfo=<UTC>)

额外 6:00!!!!

我试着做一个完整的约会,now(),但都是额外的 6 小时

【问题讨论】:

    标签: python django postgresql django-models


    【解决方案1】:

    不要将django.utils.datetime 用于数据库字段。请改用timezone

    from django.utils import timezone
    
    now = timezone.now()
    

    【讨论】:

    • 好的,谢谢。它仅适用于 timezone.now(),但我如何从字符串“datetime.strptime”中获取数据并转换为时区对象
    • 您可以使用timezone.strptime。该模块兼容datetime,但也支持时区。
    • 对不起,对,它没有。如果是这样 - 您可以使用 datetime,但请确保您的日期时间对象中有 tzinfo 参数。您可以使用timezone.localtime(value)datetime 对象转换为datetime-with-timezone 对象
    猜你喜欢
    • 2022-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    相关资源
    最近更新 更多