【问题标题】:strftime not using locale settings (Python 3)strftime 不使用区域设置(Python 3)
【发布时间】:2018-02-26 15:50:04
【问题描述】:

我认为strftime的输出格式是基于你的机器/环境的区域设置。

但是在 Python 3 的 IDLE 中,当我尝试将今天的日期格式化为 %d. %B %Y 的德语格式时,我得到以下结果

import locale    
locale.getlocale()

('de_DE', 'cp1252')

from datetime import datetime
datetime.now().strftime('%d. %B %Y')

'26. 2018 年 2 月y

我的期望:26。 2018 年 2 月

我错过了什么?

【问题讨论】:

  • 我无法重现此结果。我使用locale.setlocale(locale.LC_ALL, 'de_DE') 得到26. Februar 2018。您使用的是哪个操作系统?
  • 我正在使用 Windows 10 和 Python 3.6.4(64 位)
  • 请更新您的问题并包含您设置语言环境的代码部分
  • 我想是的。您可以尝试使用locale.setlocale(locale.LC_ALL, '') 从环境中获取语言环境设置吗?

标签: python locale strftime


【解决方案1】:

我遇到了完全相同的问题(python 3.6,anaconda 虚拟环境):

  • locale.setlocale(locale.LC_ALL, 'de_DE') 给出“不支持的区域设置”错误
  • locale.getlocale() 产生 'de_DE', 'UTF-8' 但日期时间以英文打印

bro-grammer 提出的解决方案

locale.setlocale(locale.LC_ALL, '')

为我工作

【讨论】:

    猜你喜欢
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 1970-01-01
    相关资源
    最近更新 更多