0

我有一个问题,即 AWS EC2 Ubuntu 12.04 服务器上的 Django 使用以下视图返回 UTC 时间戳:

import time
from django.utils.datetime_safe import datetime

def currentTime(request):
    return HttpResponse(json.dumps({"time": int(time.mktime(datetime.now().timetuple())) }), mimetype="application/json")

在撰写本文时为 1370604628。Ubuntu 设置为 EDT 时区,Django 的 settings.py 设置为“America/New_York”。更奇怪的是 Javascript 在使用 new Date(); 时返回 UTC 时区;

我的 USE_TZ 设置为 False,但我尝试将其设置为 True,但没有成功。

服务器是 nginx,它代理到 uWSGI。有谁知道如何解决这个问题?或者另一种在客户端 JS 和 django 之间同步时间的方法?

4

1 回答 1

1

我不熟悉 Django 的细节,但我可以告诉你,一般来说,整数时间戳,比如1370604628总是UTC 中。

您从 Python 获得的值是自 1/1/1970 UTC 以来的秒数。在 JavaScript 中,该数字以毫秒为单位,因此您必须乘以 1000。但零线位于同一点 - Jan 1st, 1970 UTC

您的任何时区设置是什么都没有关系。这些值始终采用 UTC。如果要合并时区信息,则必须使用字符串表示而不是整数。

于 2013-06-09T19:00:06.207 回答