大家好,今天遇到一个问题!
就是在tornado模板中需要转换日期字符串的格式!
例如,收到的字符串是'2015-10-11',我需要转换成'Oct 11, 2015'
我用的是strptime和strftime两个函数!
具体如下:
datetime.datetime.strptime('2015-10-11', "%Y-%m-%d").strftime("%b %d, %Y")
<time class="entry-date">{{ datetime.datetime.strptime(passage.mtime, "%Y-%m-%d ").strptime("%b %d, %Y") }}</time>
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/tornado-4.3.dev1-py2.7-linux-x86_64.egg/tornado/web.py", line 1411, in _execute
result = method(*self.path_args, **self.path_kwargs)
File "./blog.py", line 87, in get
self.render("index.html", aside=True, passages=passages)
File "/usr/local/lib/python2.7/dist-packages/tornado-4.3.dev1-py2.7-linux-x86_64.egg/tornado/web.py", line 701, in render
html = self.render_string(template_name, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/tornado-4.3.dev1-py2.7-linux-x86_64.egg/tornado/web.py", line 808, in render_string
return t.generate(**namespace)
File "/usr/local/lib/python2.7/dist-packages/tornado-4.3.dev1-py2.7-linux-x86_64.egg/tornado/template.py", line 345, in generate
return execute()
File "index_html.generated.py", line 82, in _tt_execute
_tt_tmp = datetime.datetime.strptime(passage.mtime, "%Y-%m-%d %H:%M:%S").strptime("%b %d, %Y") # index.html:16 (via base.html:56)
TypeError: must be string, not datetime.datetime
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
好吧,解决了,我穿过来的参数我以为是个字符串,结果是个datetime.datetime类型!
变成这样就好啦
<timeclass="entry-date">{{passage.mtime.strftime("%b%d,%Y")}}</time>折腾了两个小时,原来是把参数类型当错了!
传进来的是SQL中的datetime,我当成字符串了,坑爹啊!
可以在模版中引入python模块儿:{%includedatetime%}恩,了解了!不过这个问题已经解决了!是我看错出入参数的类型了!datetime当成string来用了!