【问题标题】:how to save date and time using localtime in Django?如何在 Django 中使用本地时间保存日期和时间?
【发布时间】:2015-10-19 12:30:07
【问题描述】:

所以我正在努力学习 Python 和 Django……很棒的语言和框架。

也就是说,请原谅我这个看似非常愚蠢的问题。

我有一个不会在单个时区之外使用的 Django 项目,因此以 UTC 保存内容并在需要时转换为“本地”时区并没有多大意义。

问题是我似乎无法找到一种“Python/Django”方式来正确执行此操作,如下所示:

> python manage.py shell
Python 2.7.10 (default, Jul 14 2015, 19:46:27)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.utils import timezone
>>> timezone.localtime(timezone.now())
datetime.datetime(2015, 10, 19, 10, 17, 58, 153065, tzinfo=<DstTzInfo     'America/Sao_Paulo' BRST-1 day, 22:00:00 DST>)
>>> from thingie.models import Thingie
>>>  a=Thingie(field1="teste",field2="12121",field3="112121",field4="904095034",timestamp=timezone.localtime(timezone.now()))
>>> a.save()

就目前而言,这会在我的 MySQL 数据库中创建一条记录,但时间戳字段记录为 UTC 时间...

我做错了什么?如何保存本地时间的时间戳?

提前致谢!

编辑

根据我对 Daniel 的回复,使用 datetime 在 Django 中会生成一个警告,这导致我禁用了 USE_TZ (USE_TZ = False)。这似乎可以解决问题,但我想知道是否有任何不需要的行为,因为文档建议使用时区支持。

再次感谢!

【问题讨论】:

    标签: django python-2.7


    【解决方案1】:

    如果您不关心时区,请不要做任何事情;保存它。

    a = Thingie(field1="teste", field2="12121", field3="112121", field4="904095034", timestamp=datetime.datetime.now()))
    

    注意,对于时间戳,在字段定义中使用auto_nowauto_now_add 选项会更简单,这将自动设置时间。

    【讨论】:

    • &gt;&gt;&gt; import datetime &gt;&gt;&gt; datetime.datetime.now() datetime.datetime(2015, 10, 19, 10, 31, 35, 808237) &gt;&gt;&gt; a=Nfe(xml="teste",chave_de_acesso="12121",numero_nota="112121",nsu="904095034",timestamp=datetime.datetime.now()) &gt;&gt;&gt; a.save() /Users/paulolindoso/Envs/transporte_teste/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1474: RuntimeWarning: DateTimeField Nfe.timestamp received a naive datetime (2015-10-19 10:31:58.511284) while time zone support is active. RuntimeWarning)
    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 2015-08-22
    • 2011-06-06
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    相关资源
    最近更新 更多