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

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

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

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

Сообщение tria » 31.07.2008 12:18:33

Код:

Код: Выделить всё
  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, но работаю в Лазаре :)
tria
постоялец
 
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10

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

Сообщение Sergei I. Gorelkin » 31.07.2008 13:29:59

У меня дежавю, что сообщений об этом в багтрекере было уже по крайней мере две штуки.
Поэтому:
а) уместно обновиться
б) если это Линукс, то причиной может быть неинициализированная локаль (т.е. StrToDateTime считает, что время в 12-часовом формате, где 12:00 - это полночь). Модуль clocale, который ее инициализирует и который надо подключать вручную, был добавлен сравнительно недавно.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

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

Сообщение Attid » 31.07.2008 15:07:25

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

там много про 12 часов было =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

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

Сообщение tria » 01.08.2008 13:52:16

Извиняюсь, забыл указать:
Лазарус 0.9.24
Виндоуз ХР
Обновлятся на СВН не имею возможности - вероятность новых ошибок велика,а у меня много клиентов в программе работает. Я после каждой официальной версии и так занимаюсь долгим тестированием.
tria
постоялец
 
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10

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

Сообщение Sergei I. Gorelkin » 01.08.2008 15:52:35

Лазарус тут ни при чем, это FPC.
Сейчас проверил на FPC trunk от 20.05.2008 - результат дает правильный, "01.01.2001 12:00:00".
Собственно, исправлено оно было довольно давно, так что фикс должен войти в 2.2.2, который вот-вот уже выйдет.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

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

Сообщение Attid » 01.08.2008 16:05:43

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

я из свн версии только файл отвечающий за время в фпц использую.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

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

Сообщение Владимир » 29.08.2008 13:49:45

Не совсем так. Ф-ция 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)
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

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

Сообщение Attid » 29.08.2008 20:03:14

Владимир писал(а):Не совсем так. Ф-ция 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 , его правили.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

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

Сообщение Владимир » 30.08.2008 22:59:29

Замечательно. FPC 2.2.? - какой можно юзать без опасений? Понятно, что Lazarus здесь ни при чем, но не будет ли проблем с работой с MySQL (это для меня важно)?
Понимаю, что вопрос праздный - мне дешевле отказаться от такого преобразования, чем хоронить проект...
А DecodeDate() и DecodeTime() тоже глюкавые? Не хотелось бы верить - я на Lazarus поставил (в пику Kylih) - кстати, там проблем практически не было (были, конечно, но не фатальные).
Понятно (глобальный вопрос) - использование freesoft дает немалый выигрыш, однако хочется надеяться, что общеупотребимые функции паскаля будут реализованы без ошибок.
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

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

Сообщение Attid » 31.08.2008 00:54:05

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

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


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

2,2,2 уже релиз, можно без опасений. хотя я еще 2,2,0 юзал. просто заменял date-что-то-там.inc на версию из свн и пересобирал фпц.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

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

Сообщение Владимир » 02.09.2008 22:56:21

Мужики, объясните чайнику - скачать fpc 2.2.2 и пересобрать Lazarus 0.9.24 -это правильно?
И что значит свн?
К сожалению, я не сис, я кодер - поможите!
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

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

Сообщение Attid » 03.09.2008 12:41:42

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

да

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

http://ru.wikipedia.org/wiki/Subversion
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 38

Рейтинг@Mail.ru