2014-01-17 102 views
1

所以我有一个脚本,正在我的数据库中创建一些模型,我用datetime而不是timezone。它不给我一个错误,但我得到以下警告:Django时区和日期时间

/Library/Python/2.7/site-packages/Django-1.6-py2.7.egg/django/db/models/fields/__init__.py:903: RuntimeWarning: DateTimeField Notification.date_sent received a naive datetime (2014-01-17 16:20:56.524827) while time zone support is active. 
    RuntimeWarning) 

我的问题是在这里:它有所作为?当然,也许我应该使用timezone,因为用户可以在不同的时区,但为什么它给我一个RuntimeWarning效率有什么重大差异?

回答

2

这不是关于效率,而是关于正确性。正如错误所说,你的日期时间是天真的,这意味着该日期时间的时区是未知的。这意味着您的应用程序的其它部分无法显示/再把它转,因为他们无法解释的时区是在

由于the documentation说:

一个天真的对象不包含足够的信息明确地定位其相对于其他日期/时间对象本身。无论天真的对象代表协调世界时(UTC),当地时间还是某个其他时区的时间,都完全取决于程序,就像程序是否代表特定数字代表米,英里或质量一样。天真的对象很容易理解和使用,代价是无视现实的某些方面。

+0

好吧,谢谢,这就是我的想法。 –