![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получить дату без года в формате текущих региональных настроек [D6, Win95/98, WinME, NT4, Win2k, WinXP]
Falcon © (2007-10-21 01:25:00)Нужно из даты TDate получить текстовую дату без года в формате текущих региональных настроек. Например, региональные настройки под США, дата 31 декабря 2007, нужно преобразовать в string: '12/31'.
Возможно ламерский вопрос. Но с ходу не смог найти решение, не нашел ничего и в инете.
Falcon (2007-10-21 22:47:00) [1]
> Конечно, свои проблемы сподручнее решать собс-ручно.
Согласен
>
> А по сути можно добавить, что никто не запрещает
> даже такой разделитель даты: {y}
> И нет нужды менять ShortDateFormat при наличии FormatDateTime.
>
Менять ShortDateFormat не буду :)
Leonid Troyanovsky (2007-10-21 22:43:00) [2]
> Falcon (21.10.07 22:34) [45]
> как решить свою проблему.
Конечно, свои проблемы сподручнее решать собс-ручно.
А по сути можно добавить, что никто не запрещает
даже такой разделитель даты: {y}
И нет нужды менять ShortDateFormat при наличии FormatDateTime.
--
Regards, LVT.
Falcon (2007-10-21 22:34:00) [3]Всем большое спасибо. Несколько лет не писал на Дельфи, многое подзабыл. Начиная с комментариев [2]-[4] стало понятно как решить свою проблему. По сути вот как:
StringReplace(ShortDateFormat, 'y', '', [rfReplaceAll])
;)
P.S. Не зря топик перенесли в этот раздел :)
P.P.S. Не бывает ничего не разрешимого.
Leonid Troyanovsky (2007-10-21 22:13:00) [4]
> Плохиш © (21.10.07 21:32) [43]
> Бедные немцы/англичане/ и т.д., у них и словов-то таких
> нет :-))
Немцы происходят от слова "немые", т.е. сие неудивительно.
А вот потребность локализовать дельфийское приложение для
англичан несколько неожиданно.
Хотя, возможно, что именно так и поступают, скажем, индусы.
--
Regards, LVT.
Плохиш (2007-10-21 21:32:00) [5]
> Leonid Troyanovsky © (21.10.07 14:06) [26]
>
> > DVM © (21.10.07 13:55) [22]
>
> > Должно быть: 21 октября 2007 г.
>
> LongMonthNames[10] := 'октября';
Бедные немцы/англичане/ и т.д., у них и словов-то таких нет :-))
Leonid Troyanovsky (2007-10-21 15:36:00) [6]
> DVM © (21.10.07 15:04) [41]
> у вас анкета слетела, посмотрите.
- А у вас ус отклеился.
- Спасибо..
:)
fixed.
--
Regards, LVT.
DVM (2007-10-21 15:04:00) [7]
> Leonid Troyanovsky ©
у вас анкета слетела, посмотрите.
Leonid Troyanovsky (2007-10-21 14:55:00) [8]
> DVM © (21.10.07 14:37) [39]
> Это сложный вопрос, что хуже. Некоторые вещи все равно мы
> не переведем, как бы не старались на язык отличный от языка
> системы. Например, OpenDialog-и.
Tо, что будет легко - никто не обещал.
Не только потому, что борланды занимают пупоцентрическую позицию
(что им какие-то Росиия или Китай) или, скажем, у них ресурсов поменее, что у MS, но и потому, что это объективно сложно.
Но, в любом случае, было б желание, а сделать можно.
--
Regards, LVT.
DVM (2007-10-21 14:37:00) [9]
> Вот и получаются так лоскутно локализованные шалтаи-болтаи,
>
> ведущие себя не одинаково в разных системах.
Это сложный вопрос, что хуже. Некоторые вещи все равно мы не переведем, как бы не старались на язык отличный от языка системы. Например, OpenDialog-и.
Leonid Troyanovsky (2007-10-21 14:31:00) [10]
> DVM © (21.10.07 14:24) [33]
> А если неизвестно заранее какие языки встретятся программе
> в процессе ее работы? Чем делать лишнюю работу по локализации
> не проще ли воспользоваться тем, что уже есть в системе.
Вот и получаются так лоскутно локализованные шалтаи-болтаи,
ведущие себя не одинаково в разных системах.
Про MessageDlg тоже, кстати.
--
Regards, LVT.
Anatoly Podgoretsky (2007-10-21 14:31:00) [11]> DVM (21.10.2007 14:30:36) [36]
Вот что и хотел, то и получит - ничего
DVM (2007-10-21 14:30:00) [12]
> korneley © (21.10.07 14:27) [35]
даже его частный случай не имеет решения, т.к. в окне настройки региональных параметров отображения даты пользователь компьютера может написать "Здесь был Вася" вместо маски и все.
korneley (2007-10-21 14:27:00) [13]Так человеку и нужен "частный случай"... И все уже решено, и советы даны, о чем спорим-то?
Leonid Troyanovsky (2007-10-21 14:25:00) [14]
> DVM © (21.10.07 14:14) [28]
> плюс если мы исправим так, то неправильно будет работать
> делфийская функция, когда нам понадобится название месяца
> в именительном падеже.
Массива, IMHO, вполне хватит ;)
Да, и не обязательно менять что-то глобально,
есть еще и TFormatSettings.
--
Regards, LVT.
DVM (2007-10-21 14:24:00) [15]
> Вот как раз в общем то и решаема, а не решаема, возможно,
> в частных случаях.
В общем, к сведению, это значит для всех возможных ситуаций. Если есть ситуации, для которых задача не решаема, то она не решаема в общем случае, но имеет частные решения.
> Видимо, как описано в главе про интернациализацию и локализацию.
А если неизвестно заранее какие языки встретятся программе в процессе ее работы? Чем делать лишнюю работу по локализации не проще ли воспользоваться тем, что уже есть в системе.
Та же песня про MessageBox и надписи на кнопках в MessageDlg
Anatoly Podgoretsky (2007-10-21 14:20:00) [16]> DVM (21.10.2007 14:17:31) [31]
Вот как раз в общем то и решаема, а не решаема, возможно, в частных случаях.
Leonid Troyanovsky (2007-10-21 14:17:00) [17]
> DVM © (21.10.07 14:11) [27]
> И так для всех языков, даже для нас неизвестных делать будем?
> Как?
Видимо, как описано в главе про интернациализацию и локализацию.
Чудес не бывает, придется и переводчиков нанимать ;)
--
Regards, LVT.
DVM (2007-10-21 14:17:00) [18]
> Так что не старайся придумать форматы.
так я и не придумываю - говорю же задача не выполнима в общем случае.
Anatoly Podgoretsky (2007-10-21 14:16:00) [19]> DVM (21.10.2007 14:11:27) [27]
То согласно вопроса, получится "MMMM" и сразу предупредаю вопрос, если будет без года тоже отработает, год будет удален вне зависимости указан он или нет и не важно где он будет указан.
Так что не старайся придумать форматы.
DVM (2007-10-21 14:14:00) [20]
> LongMonthNames[10] := 'октября';
плюс если мы исправим так, то неправильно будет работать делфийская функция, когда нам понадобится название месяца в именительном падеже.