Ошибка с датой

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
tria
постоялец
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10
Контактная информация:

Ошибка с датой

Сообщение tria »

Код:

Код: Выделить всё

  dt:=StrToDateTime('01.01.2001 13:00');
  ShowMessage(DateTimeToStr(dt));

возвращает '01.01.2001 13:00:00''

Код: Выделить всё


Код:
  dt:=StrToDateTime('01.01.2001 12:00');
  ShowMessage(DateTimeToStr(dt));

возвращает '01.01.2001'

Собственно, что не так делаю или это таки баг и надо в трекер?
Вопрос наверное надо бы в ветку FPC, но работаю в Лазаре :)
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

У меня дежавю, что сообщений об этом в багтрекере было уже по крайней мере две штуки.
Поэтому:
а) уместно обновиться
б) если это Линукс, то причиной может быть неинициализированная локаль (т.е. StrToDateTime считает, что время в 12-часовом формате, где 12:00 - это полночь). Модуль clocale, который ее инициализирует и который надо подключать вручную, был добавлен сравнительно недавно.
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

Sergei I. Gorelkin писал(а):У меня дежавю, что сообщений об этом в багтрекере было уже по крайней мере две штуки.

там много про 12 часов было =)
tria
постоялец
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10
Контактная информация:

Сообщение tria »

Извиняюсь, забыл указать:
Лазарус 0.9.24
Виндоуз ХР
Обновлятся на СВН не имею возможности - вероятность новых ошибок велика,а у меня много клиентов в программе работает. Я после каждой официальной версии и так занимаюсь долгим тестированием.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Лазарус тут ни при чем, это FPC.
Сейчас проверил на FPC trunk от 20.05.2008 - результат дает правильный, "01.01.2001 12:00:00".
Собственно, исправлено оно было довольно давно, так что фикс должен войти в 2.2.2, который вот-вот уже выйдет.
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

tria писал(а):вероятность новых ошибок велика,а у меня много клиентов в программе работает.

я из свн версии только файл отвечающий за время в фпц использую.
Владимир
постоялец
Сообщения: 361
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Сообщение Владимир »

Не совсем так. Ф-ция StrToTime('12:24:55') возвращает 00:24:55, в то время как
StrToTime('13:24:55') возвращает 13:24:55, т.е. баг в интервале 12:00:00 -12:59:59
(Linux SlackWare 12.1, Lazarus 0.9.24.beta)
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

Владимир писал(а):Не совсем так. Ф-ция StrToTime('12:24:55') возвращает 00:24:55, в то время как
StrToTime('13:24:55') возвращает 13:24:55, т.е. баг в интервале 12:00:00 -12:59:59
(Linux SlackWare 12.1, Lazarus 0.9.24.beta)

это баг фпц 2,2,0 , его правили.
Владимир
постоялец
Сообщения: 361
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Сообщение Владимир »

Замечательно. FPC 2.2.? - какой можно юзать без опасений? Понятно, что Lazarus здесь ни при чем, но не будет ли проблем с работой с MySQL (это для меня важно)?
Понимаю, что вопрос праздный - мне дешевле отказаться от такого преобразования, чем хоронить проект...
А DecodeDate() и DecodeTime() тоже глюкавые? Не хотелось бы верить - я на Lazarus поставил (в пику Kylih) - кстати, там проблем практически не было (были, конечно, но не фатальные).
Понятно (глобальный вопрос) - использование freesoft дает немалый выигрыш, однако хочется надеяться, что общеупотребимые функции паскаля будут реализованы без ошибок.
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

Владимир писал(а):кстати, там проблем практически не было

на каком ядре ? =)


Владимир писал(а):FPC 2.2.? - какой можно юзать без опасений?

2,2,2 уже релиз, можно без опасений. хотя я еще 2,2,0 юзал. просто заменял date-что-то-там.inc на версию из свн и пересобирал фпц.
Владимир
постоялец
Сообщения: 361
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Сообщение Владимир »

Мужики, объясните чайнику - скачать fpc 2.2.2 и пересобрать Lazarus 0.9.24 -это правильно?
И что значит свн?
К сожалению, я не сис, я кодер - поможите!
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

Владимир писал(а):Мужики, объясните чайнику - скачать fpc 2.2.2 и пересобрать Lazarus 0.9.24 -это правильно?

да

Добавлено спустя 36 секунд:
Владимир писал(а):И что значит свн?

http://ru.wikipedia.org/wiki/Subversion
Ответить