==
сравнивает ссылки на объект в Java, и это не исключение для String
объекты.
Для сравнения фактического содержания объектов (включая String
), нужно использовать equals
метод .
, Если сравнение два String
объекты с помощью ==
оказывается true
, это вызвано тем, что String
объекты были интернированы, и виртуальная машина Java имеет несколько ссылочных точек к тому же экземпляру String
. Не нужно ожидать что, сравнивая одного String
объект, содержащий то же содержание как другой String
объект с помощью [1 111] для оценки как [1 112].
http://docs.python.org/library/locale.html
Модуль datetime
уже поддерживает локаль.
Это примерно следующее
# German locale
loc= locale.setlocale(locale.LC_TIME,("de","de"))
try:
date= datetime.date.strptime( input, "%d. %b. %Y" )
except:
# English locale
loc= locale.setlocale(locale.LC_TIME,("en","us"))
date= datetime.date.strptime( input, "%d. %b. %Y" )
Очень незначительный момент в вашем фрагменте кода: я не эксперт по питону, но считаю, что проверка на успех всего флага + молчаливое проглатывание всех исключений является плохим тоном. Я думаю, / expect / else делает то, что вы хотите, более чистым способом:
for l in locale.locale_alias:
try:
locale.setlocale(locale.LC_TIME, l)
except locale.Error: # the doc says setlocale should throw this on failure
pass
else:
print l