问题标签 [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.
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,但这并没有什么不同。
django - 在 Django for Celery 中正确的时间设置
我想知道如何在 django 和 celery 中正确使用时间设置。
这是我所拥有的:
但是我的 Celery 任务的时间戳提前了两个小时。我该如何解决?
使用:
Django - 1.6b2
芹菜 - 3.0.23
django-celery - 3.0.23
python - Django 时区转换
我在日志和显示中看到了一些奇怪的行为。我想不通。
在 settings.py 中:
在views.py中:
输出:
一切似乎都很好。
然后在模板中:
呈现为:
请注意,由于我无法理解的原因,第一行声称有两个不同的时区。
将 settings.py 中的默认时区更改为“America/New_York”(但将视图保留为 America/Chicago)会导致:
并呈现为:
为什么渲染的|date:'e'
和具有不同的值.tzinfo
?更进一步,为什么blast_time
转换为不同时区的 显示相同的小时?
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() 然后解决!:)
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
设置是不好的做法吗?
python - 日期时间字段以不同的值保存,并在 django 表单中显示不同的值
我有一个模型,其中有一个 DateTimeField。
以及本次活动的范本
当我从管理员创建事件时,我将时间设置为我希望事件发生的时间,比如 19:30。但是,如果我调用 events.date 属性,我会得到
如果我在模板中使用它
它显示 17:30。
但是当我将它加载到模型表单中的模板上时
并在模板中
然后日期呈现与我在管理页面中添加的相同,即 19:30
我怎样才能改变这种行为。django 是否总是以 UTC 格式保存日期?我在希腊,因此 datetime 对象的负 2 小时(我认为)。假设我的应用程序将在许多不同的国家/地区运行,我可以自动执行此操作吗,例如当我使用属性在模板上呈现日期时,它将显示实际保存的时间,而不是 UTC 时间。希望我是有道理的......
在我的设置文件中,我有
django - Django 并在正确时区的模板中查看日期
我似乎无法在 django 中使用时区。我在这里读过这个,但是当我尝试应用它时它不起作用。
我的模型
我的看法是:
在我的 template.html
我的设置文件
因此,当我读到 USE_TZ 是否为真时,日期时间会以 UTC 格式保存在数据库中,然后 django 在将它们呈现在表单中时以本地时间(根据 TIME_ZONE 变量)呈现它们。但是我的模板会呈现它们保存在数据库中的日期(意味着比当地时间晚了两个小时,例如我想要 18:30,它保存了 16:30,它显示 16:30)。我试过了
没有什么。更准确地说,它根本没有显示任何日期,它是空白的。我试过了
但时间保持不变,没有任何修改。
问题是在我的模板中,我以类似的方式执行此操作
它以正确的时区显示日期(例如 14:30 变为 16:30),但不是 24 小时格式(我保存的格式)。有人可以帮我解决时区和django一劳永逸的问题吗
python - DateTimeField 收到一个天真的日期时间
我有带有DateTimeField列的模型。
我正在尝试通过 sql 查询将具有数据库current_time值的行直接插入到表中。
我对 MySQL 数据库的 sql 查询如下:
并得到:
RuntimeWarning:DateTimeField ModelName.field_name 在时区支持处于活动状态时收到了一个天真的日期时间 (2014-01-09 22:16:23)。
如何通过sql查询将当前时间直接插入表中而不发出警告?
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 运行查询而不出错。
python - Django 将记录集中的所有日期转换为时区感知
我有一个使用 mysql 作为数据库的 django 模型,并且我正在使用时区支持。我的模型中有一个包含日期的字段。
由于 mysql 无法在日期字段中存储时区信息,因此我将时区偏移量存储在另一个字段中。当我查询数据库时,我想使用存储在数据库中的偏移量将所有日期转换为时区感知。
您可以假设我的模型如下所示:
我目前的查询是:
但在我的模板中,我希望使用 item.pubDate 自动转换为我的本地时区。
谢谢。