Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.05;
Скачать: CL | DM;

Вниз

Перевод даты в строгу с заданым форматом   Найти похожие ветки 

 
Opilki_Inside ©   (2006-01-30 16:30) [0]

Всем привет!
В делфях есть функция DateFormat, которая переводит дату в строку с заданым форматом...

А есть ли обратная функция, что бы в качестве аргументов я бы передавал строку, и формат в котором она находится?

Т.е. у меня есть строка
051022   и формат yymmdd   нужно на выходе получить тип TData со значением 22 октября 2005

с FormatSettings такого не получилось, а гемороя не хочется:(


 
Ega23 ©   (2006-01-30 17:05) [1]

Тебе, поди, для БД надо?


 
Opilki_Inside ©   (2006-01-30 17:13) [2]

нее... ну не совсем... есть текстовый файл, в нем дата в формате yymmdd нужно ее от туда изъять и перевести в ISO, для дальнейшей загрузки в БД


 
begin...end ©   (2006-01-30 17:15) [3]

По крайней мере, DateSeparator в строку придётся вставить.


 
Ega23 ©   (2006-01-30 17:17) [4]


> нее... ну не совсем... есть текстовый файл, в нем дата в
> формате yymmdd нужно ее от туда изъять и перевести в ISO,
>  для дальнейшей загрузки в БД
>


Ну, если формат даты в файле фиксированный, то, думаю, тебе не составит труда его распарсить так, как надо.


 
Yanis ©   (2006-01-30 17:19) [5]


> что бы в качестве аргументов я бы передавал строку, и формат
> в котором она находится?

Есть такая функция. StrToDate называется.


> с FormatSettings такого не получилось

А ты ещё разок попробуй.


> а гемороя не хочется:(

Тогда иди пивка попей.


 
Opilki_Inside ©   (2006-01-30 18:05) [6]

Yanis
>А ты ещё разок попробуй.

Yanis, я же сказал что через FormatSettings не получилось. неужели не ясно? В строке с датой какой-то сепаратор должен быть по любому.
А если у тебя получилось - то напиши, если конечно, тебе не жалко...

Yanis, ты вопрос вообще читал? Про StrToDate и так все знают

Дело не втом что мне служно написать функцию распарсивания этой даты, я уже давно ее написал. Дело в подходе, можно все функции заново написать... только стандартные функции работают как-то по надежнее и не нужно с собой самодельных таскать


 
Yanis ©   (2006-01-30 18:13) [7]

2 [6]
Ты писал

> А есть ли обратная функция, что бы в качестве аргументов
> я бы передавал строку, и формат в котором она находится?

Я ответил:

> Есть такая функция. StrToDate называется.

Разве не верно?
Да тут даже переводить не нужно. Если формат фиксированный, то третьему и четёртому символу (т.е. числу, в твоём случае 10) ставить в соответсвие название месяца. Это проще чем вставлять разделители и использовать стандартные функции.


 
begin...end ©   (2006-01-30 18:20) [8]

> Opilki_Inside

Я могу ещё раз сказать, что в строку нужно вставить DateSeparator.

var
 FS: TFormatSettings;
 DT: TDateTime;
 S: string;
begin
 GetLocaleFormatsettings(LOCALE_USER_DEFAULT, FS);
 FS.ShortDateFormat := "yymmdd";
 FS.TwoDigitYearCenturyWindow := 50;
 S := "05.10.22";
 DT := StrToDateTime(S, FS)
end


 
Opilki_Inside ©   (2006-01-30 18:27) [9]

Yanis, не верно.
Я сначала написал про функцию DateFormat , и в нее передается именно формат! (format), а не установки (format settings). А в StrToDate передаются именно format settings. И искал я функцию обратную, DateFormat.

Да я же тебе объяснил что написать парсер - не проблема, думал что существует стандартная функция. Ну раз ее не существует то так и нужно было сказать, а не тыкать носом в функцию с которой это и так не получится.


 
Opilki_Inside ©   (2006-01-30 18:27) [10]

Yanis, не верно.
Я сначала написал про функцию DateFormat , и в нее передается именно формат! (format), а не установки (format settings). А в StrToDate передаются именно format settings. И искал я функцию обратную, DateFormat.

Да я же тебе объяснил что написать парсер - не проблема, думал что существует стандартная функция. Ну раз ее не существует то так и нужно было сказать, а не тыкать носом в функцию с которой это и так не получится.



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

Текущий архив: 2006.03.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.041 c
15-1139811873
Некто
2006-02-13 09:24
2006.03.05
Линзы DVD/CD-приводов


15-1139834880
Nick Denry
2006-02-13 15:48
2006.03.05
Gtk2 и Delphi


4-1134568592
Revenkov
2005-12-14 16:56
2006.03.05
Завершение работы программы при выключении машины


1-1138663233
IntruderLab
2006-01-31 02:20
2006.03.05
Использование ADO в DLL


11-1120545625
Gaddy
2005-07-05 10:40
2006.03.05
Form1.Button1Click - ошибка?