![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему функция возвращает фалсе
KyRo © (2006-03-21 12:02:00)
if TryStrToDate(Trans[6],DT)
then
ERR_Table.FieldByName('DATE_TR').Value:=Trans[6];
Подскажите почему Фалсе если число 12.22.04 и нормально все когда
04.01.05 ?
Формат даті в базу вводится именно такой как и надо
balepa (2006-03-21 12:56:00) [1]Если знаеш на каких устройствах какие форматы можно и отсеять по устройствам (если конечно в базе есть названия устройств)
Рамиль (2006-03-21 12:53:00) [2]При такой постановке задачи НЕЛЬЗЯ опираться на результат TryStrToDate.
Надо знать, от какого устройства данные и преобразовывать в соответсвии с ним. Проверить в каком формате дата нельзя, потому что, например 01.01.06 может быть одновременно и в формате DD.MM.YY и в формате MM.DD.YY. Неужели не понятно?!.
Reindeer Moss Eater (2006-03-21 12:51:00) [3]Да никак, если ты еще не понял.
'01.02.03'
Это может быть и первое февраля и второе января.
При обеих форматах системной даны dd.mm.yy и mm.dd.yy
эта строка преобразуется в валидную дату.
KyRo (2006-03-21 12:47:00) [4]
> Sergey13 ©
У меня и так поле формата дата.
На сервере дата в нашем формате покрайней мере отображается в нашем.
Даты которые поставляются , поставляются разными устройствами и переконфигурировать их не реально , а насчет принимать как есть то я не могу иначе я не смогу эту запись потом найти в базе !! Мне надо что бы у нее обязательно была дата.
Если я буду переводить дату в случае фалса функцией
FormatDateTime('mm.dd.yyyy', fsDateTimePicker3.date);
то у меня может быть вариант когда вообще вместа даты прийдет
строка в виде '12.sZA.23' и если на такую строку нарветса функция то будет ошибка.
Мне надо как то тогда проверить в каком формате эта дата
как это можно сделать ?
Reindeer Moss Eater (2006-03-21 12:43:00) [5]если у меня половина дат в одном формате , а другая половина в другом как проверить в каком формате дата ??
06.11.06
11.07.06
это 6-nov-2006 и 11-jul-2006?
или может это 11 июня 2006 и 11 июля 2006?
нет, а может это 6 ноября и 7 ноября?
Reindeer Moss Eater (2006-03-21 12:34:00) [6]>как проверить в каком формате дата ??
Тебе про это функция рассказывает TryStrToDate.
Надо принимать её результат как есть, а не чесать репу почему она тебе фальш возвратила.
Раз возвратила значит аргументом была не дата.
Sergey13 (2006-03-21 12:34:00) [7]2[9] KyRo (21.03.06 12:30)
Я тебе давно говорил, что лучше перевести поле в формат даты и не маяться с форматированием строки.
Иначе, чувствую, недалек тот день, когда ты спросишь - "а как мне отсеять записи по диапазону дат?".
Плохиш (2006-03-21 12:34:00) [8]
> KyRo (21.03.06 12:30) [9]
> Ну я вообщем то понял из за чего .
> Подскажите тогда что лучше сделать если у меня половина
> дат в одном формате , а другая половина в другом как проверить
> в каком формате дата ??
Это надо спросить у того, кто тебе эти данные поставляет.
KyRo (2006-03-21 12:30:00) [9]Ну я вообщем то понял из за чего .
Подскажите тогда что лучше сделать если у меня половина дат в одном формате , а другая половина в другом как проверить в каком формате дата ??
Рамиль (2006-03-21 12:27:00) [10]
> Потому как некоторы даты в этом формате проходят , а некоторые
> нет ??
Да не некоторые.
04.01.05 интерпретируется как 4-ое января
а
12.22.04 как 12-ое 22-ого месяца.
Первый же ответ
> Плохиш © (21.03.06 12:05) [1]
был исчерпывающим, что тебе еще надо?
Плохиш (2006-03-21 12:20:00) [11]
> KyRo (21.03.06 12:12) [4]
> Предлогаете перевести в длинный формат ??
Это ваша программа
> Потому как некоторы даты в этом формате проходят , а некоторые
> нет ??
Чушь
Reindeer Moss Eater (2006-03-21 12:19:00) [12]>Предлогаете перевести в длинный формат ??
Лично я предлагаю не ограничиваться полумерами, я предлагаю реформу календаря.
Сергей М. (2006-03-21 12:17:00) [13]
> Потому как некоторы даты в этом формате проходят , а некоторые
> нет ?
И какие же "нет" ?
KyRo (2006-03-21 12:12:00) [14]Предлогаете перевести в длинный формат ??
Потому как некоторы даты в этом формате проходят , а некоторые нет ??
Reindeer Moss Eater (2006-03-21 12:06:00) [15]ShowMessage(ShortDateFormat);
Плохиш (2006-03-21 12:05:00) [16]Локальные настройки короткой даты "DD.MM.YY"
Сергей М. (2006-03-21 12:05:00) [17]
> почему Фалсе
Ну наверно потому что (цитата из справки)
S must consist of two or three numbers, separated by the character defined by the DateSeparator global variable or its TFormatSettings equivalent