Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.26;
Скачать: [xml.tar.bz2];

Вниз

Независимая дата и время   Найти похожие ветки 

 
Goida   (2004-01-15 11:21) [0]

Как получить дату с временем (31.12.2003 23:59:00) в формате TDateTime независимо от настроек Windows. Если я напишу в качестве разделителей точки, то на машине, где используются слэши дата в текстовом формате не будет понята и переведена. Этого нужно избежать. Как это сделать?


 
Ega23   (2004-01-15 11:30) [1]

IncSecond


 
alex_***   (2004-01-15 11:33) [2]

в формате TDateTime нет точек, запятых и т.д. и этот формат не зависим от настроек Windows. А в случае текстовых представлений даты/времени надо самому определить в каком формате ты будешь передавать и проверять DateSeparator и TimeSeparator перед конвертацией в TDateTime.


 
Goida   (2004-01-15 11:33) [3]


> Ega23
> IncSecond

Хочешь сказать, что взяв нулевую дата (или текущую) по секундам довести ее до кондиции?!


 
Goida   (2004-01-15 11:35) [4]


> alex_***

Это понятно. Я думал может есть другой, более рациональный способ?


 
alex_***   (2004-01-15 11:38) [5]

не встречал.


 
Романов Р.В.   (2004-01-15 11:38) [6]

formatdatetime("dd.mm.yy hh:nn:ss", Date);


 
KosilkA   (2004-01-15 11:39) [7]

var time:_systemtime;
begin
GetLocalTime(time);
showmessage(inttostr(time.wDay)+"."+inttostr(time.wMonth)+"."+inttostr(time.wYear)+" "+inttostr(time.wHour)+":"+inttostr(time.wMinute)+":"+inttostr(time.wSecond));


 
McSimm   (2004-01-15 11:40) [8]

В зависимости от потребностей.

Можно временно задать свой формат:
OldShortDateFormat:=ShortDateFormat;
try
ShortDateFormat:="...."; // указать свой формат (см. справку Date-Time Format Strings)
Result:=StrToDateTime(ADate);
finally
ShortDateFormat:=OldShortDateFormat;
end

Или можно построить TDateTime с помощью EncodeDateTime()


 
Ega23   (2004-01-15 11:40) [9]

Нет.


 
Ega23   (2004-01-15 11:42) [10]


> Хочешь сказать, что взяв нулевую дата (или текущую) по секундам
> довести ее до кондиции?!

Нет, не так.

dt:=IncSecond(EncodeDate(2004,01,01),-1);


 
Goida   (2004-01-15 12:00) [11]

Думаю, что это лучше всего:

var
MyDate: TSystemTime;
Date: TDateTime;
...
with MyDate do
begin
wYear := 2003;
wMonth := 12;
wDay := 31;
wHour := 23;
wMinute := 59;
wSecond := 0
end;
Date := SystemTimeToDateTime(MyDate);


Вот так и получу я свою дату. Сразу.


 
McSimm   (2004-01-15 12:04) [12]

Date := EncodeDateTime(2003, 12, 31, 23, 59, 11);


 
Goida   (2004-01-15 12:07) [13]


> McSimm

Еще бы я был не согласен.


 
Goida   (2004-01-15 12:09) [14]


> McSimm © (15.01.04 12:04) [12]
> Date := EncodeDateTime(2003, 12, 31, 23, 59, 11);

Поспешил с похвалами. Такой ф-ции нет. Ты наверно сам ее написал?


 
McSimm   (2004-01-15 12:13) [15]

Unit DateUtils.
Извиняюсь, ее вероятно небыло в D5.

Я не помню уже что там есть или нет, можно попробовать
Date := EncodeDate(2003, 12, 31) + EncodeTime(23, 59, 11);


 
Goida   (2004-01-15 12:21) [16]


> McSimm

Все поехало. Спасибо.
PS: На счет юнита твои домысля верны.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.01.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
1-83170
Alekz
2004-01-14 09:28
2004.01.26
Расстояние между двумя двоичными кодами


1-83209
Vemer
2004-01-14 13:26
2004.01.26
Очень кривое решение?


1-83151
Dennis S
2004-01-14 21:53
2004.01.26
Кто может подсказать принцип?


14-83252
Хомячок
2004-01-05 13:38
2004.01.26
Характеристика общего и специального программного обеспечения ПК


14-83271
Kair
2004-01-04 10:50
2004.01.26
Методы оптимизации





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский