如何使用Python和Django显示当前时间?

28 投票
4 回答
72254 浏览
提问于 2025-04-16 12:29

我正在学习如何使用Python和Django来制作一个小网页应用,这个应用可以显示当前的时间。我是把它放在Google App Engine上运行的。

现在它只显示一个空白页面,但我希望它能显示当前的时间。我还想把这个功能设置在主页上,而不是在/time/这个地址。

from django.http import HttpResponse
from django.conf.urls.defaults import *
import datetime

# returns current time in html
def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

def main(): 
    # maps url to current_datetime func
    urlpatterns = patterns('',
        (r'^time/$', current_datetime),
    )

if __name__ == '__main__':
  main()

4 个回答

12

对于Django代码,模板之外的支持其实很简单。

在设置中更改时区:

TIME_ZONE = 'Asia/Kolkata'

然后在需要使用的地方,使用以下代码:

from django.utils import timezone
now = timezone.now()

来源: https://docs.djangoproject.com/en/2.1/topics/i18n/timezones/

18

使用 now 模板标签。比如说:

{% now "jS F Y H:i" %}

不过,你需要在发送响应之前,把你的字符串通过模板引擎处理一下,这样它才能正常工作。

49

也许这份文档对你有帮助:时区

在视图中格式化时间

你可以通过以下方式获取当前时间:

import datetime
now = datetime.datetime.now()

或者根据时区获取时间:

import datetime
from django.utils.timezone import utc

now = datetime.datetime.utcnow().replace(tzinfo=utc)

要格式化时间,你可以这样做:

import datetime

now = datetime.datetime.now().strftime('%H:%M:%S')  #  Time like '23:12:05'

在模板中格式化时间

你可以把一个日期时间发送到模板,假设你从视图中发送了一个叫myDate的变量到模板。你可以这样格式化这个日期时间:

{{ myDate | date:"D d M Y"}}  # Format Wed 09 Jan 2008
{{ myDate | date:"SHORT_DATE_FORMAT"}}  # Format 09/01/2008
{{ myDate | date:"d/m/Y"}}  # Format 09/01/2008

查看模板过滤器date

希望这对你有帮助

撰写回答