Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: -0.963 c
3-1136835239
Rust007
2006-01-09 22:33
2006.03.05
Как загрузить Acess с паролем в Delphi


4-1134521280
THandle
2005-12-14 03:48
2006.03.05
Как правильно вывести окно поверх остальных окон?


15-1139607859
Vudu
2006-02-11 00:44
2006.03.05
Нестандартное использование компьютера


1-1138991454
ancot
2006-02-03 21:30
2006.03.05
не работает WM_PRINT


15-1139642716
Ega23
2006-02-11 10:25
2006.03.05
С Днём рождения! 11 февраля




   Наверх