Обработка международных дат в Python

== сравнивает ссылки на объект в Java, и это не исключение для String объекты.

Для сравнения фактического содержания объектов (включая String), нужно использовать equals метод .

, Если сравнение два String объекты с помощью == оказывается true, это вызвано тем, что String объекты были интернированы, и виртуальная машина Java имеет несколько ссылочных точек к тому же экземпляру String. Не нужно ожидать что, сравнивая одного String объект, содержащий то же содержание как другой String объект с помощью [1 111] для оценки как [1 112].

5
задан geejay 19 August 2009 в 12:46
поделиться

2 ответа

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" )
10
ответ дан 13 December 2019 в 19:32
поделиться

Очень незначительный момент в вашем фрагменте кода: я не эксперт по питону, но считаю, что проверка на успех всего флага + молчаливое проглатывание всех исключений является плохим тоном. Я думаю, / 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
1
ответ дан 13 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: