Форум сайта python.su
0
Всем привет.
Возникла неожиданная непонятная высушивающая мозг проблемка.
В общем после создания QApplication перестает работать datetime.strptime.
Рабочий вариант:
print datetime.strptime('27/Apr/2011:14:00:40', '%d/%b/%Y:%H:%M:%S')
app = QtGui.QApplication(sys.argv)2011-04-27 14:00:40
app = QtGui.QApplication(sys.argv)
print datetime.strptime('27/Apr/2011:14:00:40', r'%d/%b/%Y:%H:%M:%S')
Traceback (most recent call last):
File "./LoginatorForm.py", line 135, in <module>
print datetime.strptime('27/Apr/2011:14:00:40', '%d/%b/%Y:%H:%M:%S')
File "/usr/lib/python2.6/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data '27/Apr/2011:14:00:40' does not match format '%d/%b/%Y:%H:%M:%S'
Офлайн
14
конструктор QApplication устанавливает локаль — отсюда ваши проблемы.
Офлайн
0
Андрей СветловА datetime.strptime() (точней, рег-экспы) не работает в той локали? Мне что, возвращать старую локаль что ли? Тогда qt отвалится, вероятно. Или строки преобразовывать как-то?
конструктор QApplication устанавливает локаль — отсюда ваши проблемы.
Офлайн
14
1. strptime — это не regexp.
2. Рискну предположить, что в настройках у вас русская локаль. Она не знает английских названий месяцев
3. Можно перед вызовом strptime ставить английскую локаль, получать дату и вертать все взад. Медленно и неудобно.
4. Вспомнить, что есть пакет dateutil
from dateutil import parser
parser.parse('27/Apr/2011:14:00:40', fuzzy=True)
Офлайн
0
Андрей СветловТочно! Очень похоже на правду :) Спасибо
2. Рискну предположить, что в настройках у вас русская локаль. Она не знает английских названий месяцев
Офлайн