问题标签 [django-timezone]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
993 浏览

django - Django模型管理器查询集过滤器感知日期时间:在服务器重新启动之前不显示项目

我有一个 Django 模型,它有一个 publication_date 和一个 is_published 字段。我为此模型创建了一个管理器,它返回所有已发布的项目,这意味着:每个具有 is_published=True 和 publication_date <= now 的项目。

使用此管理器的视图如下所示:

相关urls.py:

当我默认添加新闻项目时,它会接收当前日期时间(timezone.now())作为发布日期,但是当我刷新页面时,它不会显示在前端,直到我重新启动服务器(使用 django 构建-在服务器自动取款机)。我在阿姆斯特丹时间(+2:00),当我在 publication_date 过滤器中添加 2 小时时,它工作正常,所以由于我是日期时间意识的新手,我猜我做错了什么。我已经尝试了带和不带括号的 timezone.now,但这并没有什么不同。

0 投票
2 回答
594 浏览

django - 在 Django for Celery 中正确的时间设置

我想知道如何在 django 和 celery 中正确使用时间设置。

这是我所拥有的:

但是我的 Celery 任务的时间戳提前了两个小时。我该如何解决?

使用:
Django - 1.6b2
芹菜 - 3.0.23
django-celery - 3.0.23

0 投票
0 回答
610 浏览

python - Django 时区转换

我在日志和显示中看到了一些奇怪的行为。我想不通。

在 settings.py 中:

在views.py中:

输出:

一切似乎都很好。

然后在模板中:

呈现为:

请注意,由于我无法理解的原因,第一行声称有两个不同的时区。

将 settings.py 中的默认时区更改为“America/New_York”(但将视图保留为 America/Chicago)会导致:

并呈现为:

为什么渲染的|date:'e'和具有不同的值.tzinfo?更进一步,为什么blast_time转换为不同时区的 显示相同的小时?

0 投票
1 回答
2198 浏览

django - django 时区不工作(返回错误的时间)

Django 时区支持是错误的(但是,我确定有一些我想念的东西)

我也用 SERVER(UBUNTU)、mysql 和 django 设置到 America/Los_Angeles 的时间。

服务器是俄勒冈州,我在加利福尼亚州。据我所知,没有时差。

我也一直用 php、mysql 和 django 打印。

所有结果均为 PST!

但是,我从服务器获取日期。这是完全不同的。(从数据库日期起 -7 小时)

如果在 settings.py 中关闭 TZ 支持,django 将打印完全相同的日期和时间表单 DB

我搜索了 3 个小时没有运气:(

我应该检查更多或更改什么?

提前致谢 :)

==================================================== ====== ;更新

Django 假定 DB 为 UDT 时间。然后强制计算定位时间为 -7 PDT

(必须)通过 Django 插入 timezone.now() 然后解决!:)

0 投票
1 回答
401 浏览

python - Django - 编辑设置默认时区

我现在正在经历使 django 应用程序时区感知的过程。最初,TIME_ZONE设置设置为“America/Los_Angeles”,但我认为将其设置为“UTC”可能更标准。

datetime当我像这样在 Javascript 中将 a 渲染到网页时,我发现了一些意外行为(这是我在视图前面定义start_date的天真):datetime

django视图:cal_start_date = time.mktime(start_date.timetuple())

js:startDate = new Date(response.cal_start_date * 1000)

根据TIME_ZONE我在 settings.py 中设置的值,我得到一个不同的时间戳,cal_start_date这是可以理解的:该time.mktime方法返回一个浮点数,表示自纪元 (01/01/1970) 以来的秒数。但是,自纪元以来的秒数取决于我们所指的时区。我相信这time.mktime会自动将TIME_ZONE设置作为用于此参考的设置,对吗?

一般来说,更改 djangoTIME_ZONE设置是不好的做法吗?

0 投票
1 回答
279 浏览

python - 日期时间字段以不同的值保存,并在 django 表单中显示不同的值

我有一个模型,其中有一个 DateTimeField。

以及本次活动的范本

当我从管理员创建事件时,我将时间设置为我希望事件发生的时间,比如 19:30。但是,如果我调用 events.date 属性,我会得到

如果我在模板中使用它

它显示 17:30。

但是当我将它加载到模型表单中的模板上时

并在模板中

然后日期呈现与我在管理页面中添加的相同,即 19:30

我怎样才能改变这种行为。django 是否总是以 UTC 格式保存日期?我在希腊,因此 datetime 对象的负 2 小时(我认为)。假设我的应用程序将在许多不同的国家/地区运行,我可以自动执行此操作吗,例如当我使用属性在模板上呈现日期时,它将显示实际保存的时间,而不是 UTC 时间。希望我是有道理的......

在我的设置文件中,我有

0 投票
0 回答
827 浏览

django - Django 并在正确时区的模板中查看日期

我似乎无法在 django 中使用时区。我在这里读过这个,但是当我尝试应用它时它不起作用。

我的模型

我的看法是:

在我的 template.html

我的设置文件

因此,当我读到 USE_TZ 是否为真时,日期时间会以 UTC 格式保存在数据库中,然后 django 在将它们呈现在表单中时以本地时间(根据 TIME_ZONE 变量)呈现它们。但是我的模板会呈现它们保存在数据库中的日期(意味着比当地时间晚了两个小时,例如我想要 18:30,它保存了 16:30,它显示 16:30)。我试过了

没有什么。更准确地说,它根本没有显示任何日期,它是空白的。我试过了

但时间保持不变,没有任何修改。

问题是在我的模板中,我以类似的方式执行此操作

它以正确的时区显示日期(例如 14:30 变为 16:30),但不是 24 小时格式(我保存的格式)。有人可以帮我解决时区和django一劳永逸的问题吗

0 投票
3 回答
28507 浏览

python - DateTimeField 收到一个天真的日期时间

我有带有DateTimeField列的模型。

我正在尝试通过 sql 查询将具有数据库current_time值的行直接插入到表中。

我对 MySQL 数据库的 sql 查询如下:

并得到:

RuntimeWarning:DateTimeField ModelName.field_name 在时区支持处于活动状态时收到了一个天真的日期时间 (2014-01-09 22:16:23)。

如何通过sql查询将当前时间直接插入表中而不发出警告?

0 投票
1 回答
1826 浏览

django - Django:当 USE_TZ 为 True 时,DateTimeQuery 对象没有属性 tzinfo

我使用 postgres 作为我的数据库。我有一个带有日期时间字段的名为 Invoice 的模型。运行查询时出现错误:

错误是:

当我的设置文件中的 USE_TZ 设置设置为 True 时,就会发生这种情况。

datetimes 查询需要一个 tzinfo 对象,如果没有,则使用默认的 tzinfo 对象,即 utc。我尝试从 django.utils.timezone 导入 utc tzinfo 对象,并在查询中使用它,如下所示:

即使那样我也遇到了同样的错误。

我已经阅读了关于日期时间查询的 django 文档文档,它说使用 postgres 时不需要 pytz。但是我还是安装了 pytz 并再次尝试但仍然出现错误。

当我将 USE_TZ 设置为 false 时,查询运行良好并且没有错误。

我在 django 网站上找到了这张票,它报告了这个错误,但我不知道如何使用它所说的补丁。

https://code.djangoproject.com/ticket/21432

有人可以告诉我如何使用 USE_TZ=True 运行查询而不出错。

0 投票
1 回答
574 浏览

python - Django 将记录集中的所有日期转换为时区感知

我有一个使用 mysql 作为数据库的 django 模型,并且我正在使用时区支持。我的模型中有一个包含日期的字段。

由于 mysql 无法在日期字段中存储时区信息,因此我将时区偏移量存储在另一个字段中。当我查询数据库时,我想使用存储在数据库中的偏移量将所有日期转换为时区感知。

您可以假设我的模型如下所示:

我目前的查询是:

但在我的模板中,我希望使用 item.pubDate 自动转换为我的本地时区。

谢谢。