代码之家  ›  专栏  ›  技术社区  ›  Nicu Surdu Robert Laverty

在python中基于区域设置设置日期格式

  •  1
  • Nicu Surdu Robert Laverty  · 技术社区  · 15 年前

    >>> import time
    >>> print time.strftime("%d %B")
    19 July
    

    有没有一种方法可以根据地区设置日期格式,但仍然可以控制显示的内容(在某些情况下,我不想要年份)。

    例如,在一台Enu-US机器上,我希望它输出:

    July 19'th
    
    1 回复  |  直到 15 年前
        1
  •  2
  •   Steven    15 年前

    strftime方法始终使用当前区域设置。例如:

    from datetime import date
    d = date.today()
    print d.format("%B %d")
    

    如果您想使不同部分的顺序也依赖于区域设置或其他更高级的东西,我建议您看看 babel 库,它使用公共区域设置数据存储库中的数据,并允许您执行以下操作:

    from babel.dates import dateformat
    format_date(d, format="long", locale="en_US")
    

    唉,这是不允许离开的一年。但是,如果您深入研究babel,有一些方法可以获得特定地区的模式( babel.dates.get_date_format("long", locale="en_US").pattern format 参数而不是“long”)。这仍然让你的任务剥离“yyyy”的格式,连同逗号的等。。。可能在之前或之后。除此之外,恐怕您必须为每个区域设置自己的模式。