2012-01-16 50 views
5

我有一個u'20січня2012',我需要獲取datetime對象。 (u'20січня2012'== u'20 January 2012')如何解析unicode月份名稱以在Python 2.7中獲取datetime

當你有一個datetime.strptime('2005年6月1日','%d%b%Y')如果我有不同的地區月份嗎?

(AppEngine上+蟒蛇2.7)

這將是很好的一種方法get_month(以不同的形式u'Month名,Language.RUS) - > INT: '本月數' 所以庫可以處理不同形式的月份名稱。 例如'1Июнь'和'1Июня'應該是同一日期。 我使用它來抓取網站和解析日期。

+0

如果您知道相應的語言環境,你可以前的定時功能,使用'locale.setlocale(locale.LC_TIME, 「...」)'。 –

回答

8

也許你可以先將其轉換爲一個DateTime對象,然後使用區域設置另一個地區和再次轉換吧..

這裏是什麼讓你開始..

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) 
+2

locale.setlocale(locale.LC_ALL,'de_DE') - 在Windows 7上不起作用。 由於不同系統上的語言環境名稱不同,此代碼不穩定。並且沒有烏克蘭語言的語言環境(根據http://msdn.microsoft.com/en-us/library/cdax410z%28VS.71%29.aspx) –