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

Вниз

Преобразование даты   Найти похожие ветки 

 
Разведка   (2014-01-05 18:31) [0]

Как правильно задать маску, преобразования даты, что бы получить корректный результат
задаю такую функцию DateTimeToString(S,"dd mmmm yyyy",DTPicker.DateTime); она возвращает такой результат 5 Январь 2014 все вроде правильно, кроме падежа, мне то нужно чтобы было 5 Января 2014
Может уже и там таджики вкалывают?
Как сделать маску что бы правильно получить результат?


 
Разведка   (2014-01-05 21:58) [1]

Вот и ответ, пока сам не сделаешь никто лучше не сделает...

Вариант 1

var S: string;

   DateTimeToSystemTime(DTPicker.DateTime, st);
   SetLength(S,GetDateFormat(LOCALE_SYSTEM_DEFAULT,0,@ST,PChar("dd MMMM yyyy"),Nil,0));
   GetDateFormat(LOCALE_SYSTEM_DEFAULT,0,@ST,PChar("dd MMMM yyyy"),PChar(S),Length(S));
   S := #171+StringReplace(S," ",#187+" ",[rfIgnoreCase])+"г.";
   ShowMessage(S);


Вариант 2
function TForm1.GetDateStrFromDT(DT: TDateTimePicker): String;
begin
 Result:="";
 SetLength(Result,30);
 DTPicker.GetTextBuf(@Result[1],Length(Result));
 Result := Lq + Result;
 Result := StringReplace(Result," ",Rq+" ",[rfIgnoreCase]);
end;


 
Разведка   (2014-01-05 22:01) [2]

Вот так выглядит результат «05» Января 2014г. как мне и нужно для в ставки его в офис документ *.doc


 
Кшиштоф Маннергейм   (2014-01-05 22:43) [3]

Можно заменить глобальные переменные в SysUtils.

var LongMonthNames: array[1..12] of string;


 
antonn ©   (2014-01-05 22:46) [4]


> Можно заменить глобальные переменные в SysUtils.
>
> var LongMonthNames: array[1..12] of string;

только модуль желательно скопировать в папку с проектом, чтобы не править глобально


 
Кшиштоф Маннергейм   (2014-01-05 22:51) [5]

Да не надо в самом модуле менять

Можно просто присвоить где-нибудь новые значения.
Например, в секции initialization проекта.
Или еще где-то.
Важно сделать это 1 раз.

LongMonthNames[1] := "янаваря";
LongMonthNames[2] := "февраля";

и т.д.

А если нужно отформатировать дату, использовать:

FormatDateTime ("dd/mmmm/yyyy г.", DT);


 
Кшиштоф Маннергейм   (2014-01-05 23:01) [6]

Пардон:  FormatDateTime ("dd mmmm yyyy г.", DT);


 
Разведка   (2014-01-06 18:55) [7]

А зачем что то переделывать "святые святых" системные юниты, если и так решение уже было найдено, к тому же я раз работку веду и на робете(если время есть) и дома и было бы не удобно если бы у меня юниты были переделаны в одном месте то пришлось бы переделывать их и в других местах.


 
Кшиштоф Маннергейм   (2014-01-10 16:29) [8]

2 Разведка   (06.01.14 18:55) [7]

Я не предлагал переделывать системные юниты.
Просто в системном юните объявлены глобальные переменные.
Которым разработчик вправе присвоить новые значения.


 
Inovet ©   (2014-01-10 19:23) [9]

> [8] Кшиштоф Маннергейм   (10.01.14 16:29)
> Я не предлагал переделывать системные юниты.

Дежавю у вас доих или у меня?


 
Плохиш ©   (2014-01-10 20:16) [10]

В winapi есть функция делающая желаемое преобразование.


 
Юрий Зотов ©   (2014-01-10 23:37) [11]

Посмотрите GetDateFormat


 
DVM ©   (2014-01-11 00:11) [12]

http://www.delphimaster.net/view/2-1192915547
http://www.delphimaster.net/view/2-1269966073



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

Форум: "Прочее";
Текущий архив: 2014.08.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
2-1379532154
Павел
2013-09-18 23:22
2014.08.03
TList


2-1379334790
_guest_
2013-09-16 16:33
2014.08.03
Сохранение StringList большого объема в файл


3-1300095610
Бинар
2011-03-14 12:40
2014.08.03
Прерывание запроса


15-1389182442
RDen
2014-01-08 16:00
2014.08.03
hdmi - usb


3-1299221012
Junior
2011-03-04 09:43
2014.08.03
Поиск текста в строках SQL сервера





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский