Форум: "Основная";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];
ВнизФормат времени на разных компьютерах (StrToDate) Найти похожие ветки
← →
Layner (2004-01-29 09:00) [0]Подскажите, плз, если пишу StrToDate("10.02.2004"), в 2000 нормально считает, а вот если попадется комп с др. стандартом даты, что вернет эта ф-я? Другое что то, или этоже самое?
← →
Anatoly Podgoretsky (2004-01-29 09:12) [1]А самому проверить религия не позволяет
← →
SPIRIT (2004-01-29 09:49) [2]вот если ты на Селероне считал .. то нормально, а вот АМД уже не так будут
← →
FoxBox (2004-01-29 09:54) [3]Ошибку вернет, если локальные настройки вида DD.MM.YY или же (американский вариант) MM.DD.YY (самый настоящий exception)
Но если на форме ты гоняешь сначала DateToStr(что-то), а потом обратно StrToDate() в какой-нить TEdit, то ничего страшного не произойдет. Мой совет. Используй компоненты для визуализации/редактирования даты, умеющие работать именно с TDateTime, тот же самый TDateTimePicker. И в обработках работай именно с TDateTime
← →
SPIRIT (2004-01-29 09:58) [4]почем ошибку то сразу ... будет не 10 февраля, а 2 октября... ничё страшного
← →
maxx0 (2004-01-29 10:13) [5]DateSeparator: Char;
ShortDateFormat: string;
LongDateFormat: string;
из SysUtils смотреть не пробовал?
← →
FoxBox (2004-01-29 10:14) [6]
> SPIRIT ©
А ты попробуй преобразовать 04 год в 2004. Я посмотрю на тебя... Завалится сразу и основательно. Если стоят локальный установки, что количество знакомест в году 2, а ты передашь 4 знака, ессно машина тебя пошлет. Или же наоборот 4 знака на год машина захочет получить, а ты дашь 2. Можешь даже не пробовать (я уже напробовался).
← →
FoxBox (2004-01-29 10:17) [7]
> maxx0
Ну знаешь ты текущий формат на машине. А как ты узнаешь формат даты, переданной из-вне? Не подойдет... Но ход мыслей хороший...
← →
BlackKing (2004-01-29 10:18) [8]to FoxBox (29.01.04 10:14) [6]
Jesli pochitat" eto : maxx0 (29.01.04 10:13) [5]
i pravil"no ispol"zovat", to pofig skoka znakomest v systeme ukazano.
← →
BlackKing (2004-01-29 10:20) [9]to FoxBox
pri starte programmi ukazivajem:
ShortDateFormat:="dd.mm.yyyy";
i nam uzhe nevazhno chto v sisteme.
← →
FoxBox (2004-01-29 10:27) [10]
> BlackKing
Ну передали тебе дату в виде строки вида "03.20.04"... Давай, запускай StrToDate("03.20.04")
Знаешь, что у тебя будет? Ошибка "Неверный формат". Попробуй... Кстати, подобная дискуссия поднималась. И юзверя принудительно заставлять пользоваться форматом даты DD.MM.YYYY нехорошо. Как ты себя будешь чувствовать, если при каждом запуске виндов настройки (всякие цвета, шрифты) оболочки будут устанавливаться в стандартные вне зависимости от твоих пожеданий до сего момента?
← →
BlackKing (2004-01-29 10:37) [11]1. ShortDateFormat:="dd.mm.yyyy";
устанавливает формат даты именно для программы, а не на всю систему.
2. во всей программе должен быть один формат даты, а не свой в каждой форме.
3. программа может иметь свой интерфейс, независимый от настроек системы, в крайнем случае можно добавить несколько опций где юзер сам введёт всякие форматы и цвета.
← →
Плохиш (2004-01-29 10:38) [12]>FoxBox (29.01.04 10:27) [10]
Нормальный пользователь обычно вводит дату в формате, который он установил в системе. А не нормальному пользователю или в необычном случае ему можно и вежливо намекнуть о формате ввода.
А про TDateTimePicker ты же сам и сказал ;-)
← →
Плохиш (2004-01-29 10:39) [13]>BlackKing © (29.01.04 10:37) [11]
> 3. программа может иметь свой интерфейс, независимый от
> настроек системы, в крайнем случае можно добавить несколько
> опций где юзер сам введёт всякие форматы и цвета.
Внешний вид качественной программы должен зависить от настроек системы.
← →
BlackKing (2004-01-29 10:42) [14]Плохиш
выходит WinAmp - некачественная программа? Там всё не как в системе.
← →
Плохиш (2004-01-29 10:52) [15]
> BlackKing © (29.01.04 10:42) [14]
> Плохиш
> выходит WinAmp - некачественная программа? Там всё не как
> в системе.
В каком месте WinAmpa вводится дата? Это первое.
Второе. Для меня не качественная (в большей степени не из-за интерфейса), по-этому и не пользуюсь.
И вообще не надо пороть чушь, а то сейчас ещё и игры перебирать начнёшь.
← →
BlackKing (2004-01-29 11:16) [16]Плохиш, а ето кто сказал?
"Внешний вид качественной программы должен зависить от настроек системы."
и ещё : много ли ты видел юзеров, которые сами могут настроить систему? многие даже не знают что такое бывает, а админам накласть на ето дело.
формат ввода даты не является внешним видом.
← →
BlackKing (2004-01-29 11:20) [17]а во избежание ошибок вместо
StrToDate("10.02.2004")
лучше писать
Encodedate(y,m,d);
а вот как получить y,m,d - ето уже другой вопрос.
← →
ЮЮ (2004-01-29 11:24) [18]>формат ввода даты не является внешним видом.
Неужели внешнее представление тоже меняется ??? :-)
← →
ЮЮ (2004-01-29 11:25) [19]Sorry!
>формат ввода даты не является внешним видом.
Неужели внутренне представление тоже меняется ??? :-)
← →
Плохиш (2004-01-29 11:28) [20]
BlackKing © (29.01.04 11:16) [16]
Плохиш, а ето кто сказал?
"Внешний вид качественной программы должен зависить от настроек системы."
Мы выдираем фразы из контекста или беседуем в рамках поставленного вопроса?
← →
BlackKing (2004-01-29 11:31) [21]чтобы не отступать от настроек системы и избежать ошибок надо использовать Encodedate, или писать обработчик.
выбор за написателем.
← →
BlackKing (2004-01-29 11:33) [22]Мы делаем и то и другое :o)
Sorry, такой уж я никароший!
← →
FoxBox (2004-01-29 12:21) [23]
> BlackKing
Формат представления даты во внешних система (в частности на другом компьютере) может быть ДРУГИМ!!!!! Ты по определению получишь строку с датой (если дата передана в виде строки) в формате, отличном от внутреннего представления своей машины!!!! И ХРЕН ТЫ ЕЕ (дату) ПЕРЕВЕДЕШЬ В TDateTime ИСПОЛЬЗУЯ StrToDate. Тебе понятно о чем я? Или ты опять будешь уси##ться и грить, что установка на твоей машине формата dd.mm.yy спасет отца русской демократии?
Прошу прощения за использование ненормативной лексики...
Так. пошел флейм...
← →
FoxBox (2004-01-29 12:25) [24]Уточню на всякий случай... 2 проги, работающие на разных компах, обмениваются данными друг с другом... Все, кирдык обмену, если одна знает что такое mm.dd.yy, а другая знает dd.mm.yyyy Вот такая ситуация допустима
← →
BlackKing (2004-01-29 12:26) [25]FoxBox, dlja nachala ne meshalo-bi povnimatel"nej prochitat" o chom ja govoril. Naskoka ja ponjal - mi govorim o raznih veshah.
← →
BlackKing (2004-01-29 12:27) [26]FoxBox, proga odna i ta zhe ili raznije?
← →
Sandman25 (2004-01-29 12:48) [27][16] BlackKing © (29.01.04 11:16)
Программа не должна запрещать мне ставить зеленый цвет фона окон Windows. Не говоря уже о собственно настройках даты.
← →
BlackKing (2004-01-29 13:11) [28]to Sandman25 © (29.01.04 12:48) [27]
eto odin iz variantov obhoda problemi, i on vpolne rabochij.
← →
Карелин Артем (2004-01-29 13:21) [29]Хммм. А я при передаче данных между компами загоняю дату в целое число, потом из этого делаю строку и передаю.
← →
Goida (2004-01-29 13:24) [30]Думаю, самый надежный способ перевести нужную дату в формат даты, при этом не зная настроек компа следующий:
var
MyTime: TDateTime;
SysTime: TSystemTime;
begin
with SysTime do
begin
wYear := 2003;
wMonth := 12;
wDay := 31;
wHour := 23;
wMinute := 59;
wSecond := 0
end;
MyTime := SystemTimeToDateTime(SysTime);
end.
← →
SPIRIT (2004-01-29 13:31) [31]Предлагаю написать письмо хозяину даты dd.mm.yyyy и хозяину dd.mm.yy с предложением образования нового ЕДИНОГО формата dd.mm.yyy и установить хозяином нового формата FoxBox. И за каждую посланную строку платить ему 1 коп. за возмещение морального ущерба причененного ему в результате несовместимости yy и yyyy. кто за ?
← →
FoxBox (2004-01-29 13:32) [32]
> Goida
Речь идет о тексте вида "20.03.2004"
← →
Goida (2004-01-29 14:07) [33]
> FoxBox
Ну и пусть идет. Ведь хотят этот текст перевести в формат даты:
> Layner © [0]
> Подскажите, плз, если пишу StrToDate("10.02.2004"),
← →
Anatoly Podgoretsky (2004-01-29 14:16) [34]Именно о "10.02.2004", а не о "20.03.2004" где еще можно догадаться, а зудший случай "01.02.03"
← →
Anatoly Podgoretsky (2004-01-29 14:17) [35]Вывод или надо обменитваться данными в одинаковом текстовом формате (все место для ошибок) или обмениваться в двоичном, например TDateTime тогда проблемы не будет
← →
FoxBox (2004-01-29 14:19) [36]
> SPIRIT
С удовольствием встану на денежное довольствие!
Ну а если серьезно, не засоряй форум флеймом (ведь ты ничего умного не сказал во всем обсуждении). Ладно, каждый выбирает решение проблем по-своему.
← →
SPIRIT (2004-01-29 14:36) [37]а чё если на приемнике yy а ты передаешь "10.02.2004"
так ты убери из строчки 2 символа а именно 2 и 0
и будет у тебя "10.02.04" а если yyyy тогда все путем ведь так ???
Изучал оператор IF ?
← →
Layner (2004-01-29 16:32) [38]Программа однопользовательская... По сети обмениваться ни с кем не буду,
понравилось это
BlackKing © (29.01.04 10:37)
ShortDateFormat:="dd.mm.yyyy";
Поставлю на OnCreate формы, если я правильно понял, и все должно быть Ok, хоть американская, хоть другая система даты..
← →
FOX (2004-01-29 19:05) [39]To SPIRIT © (29.01.04 14:36) [37]
Фрагмент лога Apache:
...- [29/Jan/2004:18:44:03 +0300]...
InterBase:
... 17-JAN-1990 ...
И как ты все эти варианты будешь учитывать?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.009 c