如何从 JSON 格式修改烧瓶中的日期



我直接从 JSON 将日期传递到模板,但我无法修改它的显示方式。我想显示 DD.MM.YYYY,但它直接从 JSON 格式显示 (2020-08-05T00:00:00( 我尝试使用自定义过滤器,但它给出了一堆错误。

编辑 JSON

"startDate": "2020-07-07T00:00:00"

app.py

@app.route('/generate', methods=['POST'])
def generate_pdf():
return render_to_pdf(request.json)
def render_to_pdf(context_dict):
templateLoader = jinja2.FileSystemLoader(searchpath="./templates/")
templateEnv = jinja2.Environment(loader=templateLoader)
TEMPLATE_FILE = "pdf_template.html"
template = templateEnv.get_template(TEMPLATE_FILE)
html = template.render(context_dict)
{{ json.Date.strftime('%Y-%m-%d') }}

strftime 通过指定要使用的格式将日期对象转换为字符串

你可以做

now = datetime.now() # <- datetime object
now_string = now.strftime('%d.%m.%Y')

但是,如果您已经将 DateTime 对象转换为字符串(或从 API 或其他内容获取字符串(,则可以使用 StrpTime 将该字符串转换回 DateTime 对象

date_string = '2020-08-05T00:00:00'
date_obj = strptime(date_string, '%Y-%m-%dT%H:%M:%S')  # <- the format the string is currently in

您可以先使用 strptime,然后直接从那里进行 strftime 以有效地将字符串转换为不同的字符串,但如果可能的话,您应该避免这种情况

converted_string = strptime(original_string, 'old_format').strftime('new_format')

这个主题可能会令人困惑,因为当你打印(now((记住,datetime对象(时,python会自动"表示"它并将其转换为字符串。 但是,它此时实际上不是一个字符串,而是一个日期时间对象。 Python 无法打印它,所以它会转换它 - 但你不能直接 jsonify 它, 例如。

最新更新