如何使用Python和Django显示当前时间?
我正在学习如何使用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
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
希望这对你有帮助