格式化日期

你可以使用 format_datetime()format_date()format_time() 以及 format_timedelta() 函数来格式化日期。它们都接受一个 datetime.datetime (或者 datetime.datedatetime.time 以及 datetime.timedelta)对象作为第一个参数,其它参数是一个可选的格式化字符串。应用程序应该使用天然的 datetime 对象且内部使用 UTC 作为默认时区。格式化的时候会自动地转换成用户时区以防它不同于 UTC。

为了能够在命令行中使用日期格式化,你可以使用 test_request_context() 方法:

  1. >>> app.test_request_context().push()

这里是一些例子:

  1. >>> from flask.ext.babel import format_datetime
  2. >>> from datetime import datetime
  3. >>> format_datetime(datetime(1987, 3, 5, 17, 12))
  4. u'Mar 5, 1987 5:12:00 PM'
  5. >>> format_datetime(datetime(1987, 3, 5, 17, 12), 'full')
  6. u'Thursday, March 5, 1987 5:12:00 PM World (GMT) Time'
  7. >>> format_datetime(datetime(1987, 3, 5, 17, 12), 'short')
  8. u'3/5/87 5:12 PM'
  9. >>> format_datetime(datetime(1987, 3, 5, 17, 12), 'dd mm yyy')
  10. u'05 12 1987'
  11. >>> format_datetime(datetime(1987, 3, 5, 17, 12), 'dd mm yyyy')
  12. u'05 12 1987'

接着用不同的语言再次格式化:

  1. >>> app.config['BABEL_DEFAULT_LOCALE'] = 'de'
  2. >>> from flask.ext.babel import refresh; refresh()
  3. >>> format_datetime(datetime(1987, 3, 5, 17, 12), 'EEEE, d. MMMM yyyy H:mm')
  4. u'Donnerstag, 5\. M\xe4rz 1987 17:12'

关于格式例子的更多信息请参阅 babel 文档。