我有一个u'20січня2012'我需要获得datetime对象。 (u'20січня2012'== u'20 2012年1月')
当你有一个datetime.strptime('2005年6月1日','%d%b%Y')这很容易但是如果我在不同的语言环境中有月份该怎么办?
(appengine + python 2.7)
最好有一个方法get_month(u'Month name in different forms',Language.RUS) - > int:'月数' 因此,图书馆可以处理不同形式的月份名称。 例如,'1Июнь'和'1Июня'应该是相同的日期。 我正在使用它来抓取网站和解析日期。
答案 0 :(得分:8)
也许你可以先将它转换为日期时间对象,然后使用locale设置另一个语言环境并再次转换它。
这是让你开始的东西..
import locale, datetime
In [1]: datetime.datetime.strptime('February', '%B')
Out[1]: datetime.datetime(1900, 2, 1, 0, 0)
In [2]: locale.setlocale(locale.LC_ALL, 'de_DE')
Out[2]: 'de_DE'
In [3]: datetime.date(2008, 2, 1).strftime('%B')
Out[3]: 'Februar'
In [4]: datetime.datetime.strptime('Februar', '%B')
Out[4]: datetime.datetime(1900, 2, 1, 0, 0)
答案 1 :(得分:1)
使用python_dateutil parse方法并为给定语言实现parserinfo类有一个很好的解决方案。
http://blog.elsdoerfer.name/2009/12/12/django-flexible-date-form-fields-accepting-almost-any-input/