我遇到了在 python 中使用俄语日期的问题。
当我使用 python 2.7.9 在本地 OSX virtualenv 上运行以下命令时:
import locale
import datetime
locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')
temp = datetime.date(2015, 8, 11)
print temp.strftime("%d %B %Y")
输出为:
11 августа 2015
当我使用 python 2.7.9 在 virtualenv 中的 Ubuntu 服务器上运行几乎相同的代码时:
import locale
import datetime
locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')
temp = datetime.date(2015, 8, 11)
print temp.strftime("%d %B %Y")
输出不同
11 Август 2015
这种差异从何而来?有没有办法强制一种实现优于另一种实现?
当使用 strptime 时,由于格式不匹配,如果使用错误的实现,这种差异会导致错误。
最佳答案
我在 OSx 和 Ubuntu 上的 strftime
也有同样的情况。我用 django.utils.formats 解决它:
import datetime
from django.utils import formats
temp = datetime.date(2015, 8, 11)
print formats.date_format(temp, 'DATE_FORMAT')
有一些默认的日期格式,例如“DATE_FORMAT”、“SHORT_DATETIME_FORMAT”,但您也可以在“设置”中定义自己的格式。
关于python - OSX 和 Ubuntu 之间俄语语言包的差异,如何为 strftime 获得相同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32183170/