Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » datetime.strptime не работает после QApplication [RSS Feed]

#1 Май 5, 2011 03:42:04

hdg700
От:
Зарегистрирован: 2011-05-05
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

datetime.strptime не работает после QApplication

Всем привет.

Возникла неожиданная непонятная высушивающая мозг проблемка.
В общем после создания QApplication перестает работать datetime.strptime.

Рабочий вариант:

print datetime.strptime('27/Apr/2011:14:00:40', '%d/%b/%Y:%H:%M:%S')
app = QtGui.QApplication(sys.argv)
Output:
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')
Output:
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'
Кодировки строк, stdout, системы проверял. в обоих вариантах совпадают.
Может, QApplication что-то переопределяет или что-то где-то меняет? Может какой-то предобработчик строк, типа translator?



Офлайн

#2 Май 5, 2011 08:10:57

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

datetime.strptime не работает после QApplication

конструктор QApplication устанавливает локаль — отсюда ваши проблемы.



Офлайн

#3 Май 5, 2011 09:43:15

hdg700
От:
Зарегистрирован: 2011-05-05
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

datetime.strptime не работает после QApplication

Андрей Светлов
конструктор QApplication устанавливает локаль — отсюда ваши проблемы.
А datetime.strptime() (точней, рег-экспы) не работает в той локали? Мне что, возвращать старую локаль что ли? Тогда qt отвалится, вероятно. Или строки преобразовывать как-то?



Офлайн

#4 Май 5, 2011 12:09:55

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

datetime.strptime не работает после QApplication

1. strptime — это не regexp.
2. Рискну предположить, что в настройках у вас русская локаль. Она не знает английских названий месяцев
3. Можно перед вызовом strptime ставить английскую локаль, получать дату и вертать все взад. Медленно и неудобно.
4. Вспомнить, что есть пакет dateutil

from dateutil import parser
parser.parse('27/Apr/2011:14:00:40', fuzzy=True)



Офлайн

#5 Май 6, 2011 03:18:19

hdg700
От:
Зарегистрирован: 2011-05-05
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

datetime.strptime не работает после QApplication

Андрей Светлов
2. Рискну предположить, что в настройках у вас русская локаль. Она не знает английских названий месяцев
Точно! Очень похоже на правду :) Спасибо



Офлайн

  • Начало
  • » GUI
  • » datetime.strptime не работает после QApplication[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version