Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 27, 2010 06:15:30

billy_bob
От:
Зарегистрирован: 2010-11-01
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

datetime.strptime и разные версии пайтона

День добрый.
Возникла проблема. На Python 2.7 следующая строка dateId = datetime.strptime(probe, ‘%Y-%m-%d %H:%M:%S’) отрабатывает нормально.
В Python 2.6 вылетает с ошибкой:

File "F:\src\DBInterface.py", line 90, in getMatrix
dateId = datetime.strptime(probe, '%Y-%m-%d %H:%M:%S')
File "C:\Python26\lib\_strptime.py", line 328, in _strptime
data_string[found.end():])
ValueError: unconverted data remains: .00
Сидел сверял документацию http://docs.python.org/library/datetime.html#strftime-strptime-behavior и http://docs.python.org/release/2.6.6/library/datetime.html#strftime-strptime-behavior - различий не заметил. Может конечно проблема в ОС - 2.7 стоит в Ubuntu, а 2.6 в Win.
Есть идеи как отловить проблему?



Отредактировано (Дек. 27, 2010 06:16:18)

Офлайн

#2 Дек. 27, 2010 06:20:34

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

datetime.strptime и разные версии пайтона

Осталось еще увидеть, какие строки probe проходят, а какие вызывают ошибку.



Офлайн

#3 Дек. 27, 2010 06:48:00

billy_bob
От:
Зарегистрирован: 2010-11-01
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

datetime.strptime и разные версии пайтона

Андрей Светлов
Осталось еще увидеть, какие строки probe проходят, а какие вызывают ошибку.
Так в том то и дело, что в win(2.6) не проходит ни одна строка, а в lin(2.7) проходят все.
probe - строка вида ‘2009-01-15 10:31:00.00’



Офлайн

#4 Дек. 27, 2010 06:59:38

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

datetime.strptime и разные версии пайтона

Не беспокойтесь, на linux вашу строку не разберет даже python 2.4
Спецификация формата ‘&S’ предполагает целое число в качестве секунд, и никак иначе.
Нужного вам формата просто не существует.



Офлайн

#5 Дек. 27, 2010 07:03:08

billy_bob
От:
Зарегистрирован: 2010-11-01
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

datetime.strptime и разные версии пайтона

billy_bob
Андрей Светлов
Осталось еще увидеть, какие строки probe проходят, а какие вызывают ошибку.
Так в том то и дело, что в win(2.6) не проходит ни одна строка, а в lin(2.7) проходят все.
probe - строка вида ‘2009-01-15 10:31:00.00’
хм. Странно. Только сейчас заметил. probes получается путем извлечения из базы даты и преобразования её в строку str(date)
Так вот в lin строка имеет вид ‘2009-01-15 10:31:00’, а в win 2009-01-15 10:31:00.00'



Офлайн

#6 Дек. 27, 2010 07:12:47

billy_bob
От:
Зарегистрирован: 2010-11-01
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

datetime.strptime и разные версии пайтона

Андрей Светлов
Не беспокойтесь, на linux вашу строку не разберет даже python 2.4
Спецификация формата ‘&S’ предполагает целое число в качестве секунд, и никак иначе.
Нужного вам формата просто не существует.
спасибо большое, исправил str(date) на date.strftime('%Y-%m-%d %H:%M:%S'). Все заработало.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version