Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

String to Date [D5, D6, D7, Win95/98, WinME, Win2k, WinXP]


Страницы:   1 2 3

Grihan ©   (2006-05-05 20:07:00) 

Здравствуйте.

Подскажите пожалуйста, как конвертнуть строчку "10.10.2005 г." (дата в Болгарской локале) в TDateTime?

Спасибо.


Grihan   (2006-05-05 22:06:00) [41]

Leonid Troyanovsky wrote:

> А можно полюбопытствовать, как в оной локали выглядит
> ShortDateFormat, или, скажем, LOCALE_SSHORTDATE?

ShortDateFormat = 'dd.M.yyyy 'г.''


MBo   (2006-05-05 22:05:00) [42]

Как можно убедиться в исходниках, ничего чудесного функции вроде StrToDate не делают, а просто разбирают входную строку.
Ничего не мешает сделать это самостоятельно - по крайней мере, отрезать г., и ничего неприемлемого тут нет, а остаток прекрасно переведется StrToDate (c установкой ShortDateFormat, если на разных машинах он меняется)


Grihan   (2006-05-05 22:04:00) [43]

нет, так не пойдет.
Вы пожалуйста ответьте не следующие вопросы:
1) пробовали ли Вы сами?
2) Вы издеваетесь?
3) Как конвертнуть строчку "10.10.2005 г." (дата в Болгарской локале) в TDateTime?


Leonid Troyanovsky   (2006-05-05 22:04:00) [44]


> Grihan   (05.05.06 20:07)  

> Подскажите пожалуйста, как конвертнуть строчку "10.10.2005
> г." (дата в Болгарской локале) в TDateTime?


А можно полюбопытствовать, как в оной локали выглядит
ShortDateFormat, или, скажем, LOCALE_SSHORTDATE?

--
Regards, LVT.


Мефисто   (2006-05-05 21:50:00) [45]

Grihan    (05.05.06 21:43) [8]

Для уснувших за клавиатурой :)

Повторяю пост

Лшдлуттнсфе    (05.05.06 21:07) [5]

function StrToDate(const S: string; const FormatSettings: TFormatSettings): TDateTime; overload;

TFormatSettings + F1 + SysUtils.Pas + DateUtils.pas + кучуинтересного узнаете


Grihan   (2006-05-05 21:43:00) [46]

Я так понял, что Лшдлуттнсфе = KilkennyCat
но не понял, что такое TTBOMK

P.S. Действительно, Вы очень интересный :)


Grihan   (2006-05-05 21:35:00) [47]

:)
Вы упорно не хотите тестировать свои же советы :)
Может попробуете все таки?
Я воспользуюсь Вашим методом Copy/Paste, чтобы Вас не утруждать.
StrToDate(DateToStr(Date));
Единственное, что я не смогу сделать - так это выставить Болгарскую локале у Вас на машине. Попробуйте.

PS может  другие какие функции знаете? :) API-шные например (но чтоб работали :) )? я знаю точно, что в .NET таких проблем нет


KilkennyCat   (2006-05-05 21:11:00) [48]


> Подчеркну сразу, что советы, по поводу удаления 3-х последних
> символов или аналогичные им (например: найти букву 'г' и
> уталить все, что после нее) слишком очевидны, а потому неприемлимы.


TTBOMK


Лшдлуттнсфе   (2006-05-05 21:07:00) [49]


> 3] Grihan   (05.05.06 20:57)


Вы сами пробовали справку читать? Не установлена? Лень? Не найти клавишу Ф1? Или еще какая-проблема?

Не беспокойтесь!
Я напечатаю продвинутым методом копи-пасте специально для Вас!

function StrToDate(const S: string; const FormatSettings: TFormatSettings): TDateTime; overload;

Description

S must consist of two or three numbers, separated by the character defined by the DateSeparator global variable or its TFormatSettings equivalent. The order for month, day, and year is determined by the ShortDateFormat global variable or its TFormatSettings equivalent--possible combinations are m/d/y, d/m/y, and y/m/d.

If S contains only two numbers, it is interpreted as a date (m/d or d/m) in the current year.

Year values between 0 and 99 are converted using the TwoDigitYearCenturyWindow. This value is stored either in a global variable (first form) or as a field in the FormatSettings parameter (second form) See "Currency and Date-Time Formatting Variables" for more information.

The first form of StrToDate is not thread-safe, because it uses localization information contained in global variables. The second form of StrToDate, which is thread-safe, refers to localization information contained in the FormatSettings parameter. Before calling the thread-safe form of StrToDate, you must populate FormatSettings with localization information. To populate FormatSettings with a set of default locale values, call GetLocaleFormatSettings.

Успехов.


Grihan   (2006-05-05 21:03:00) [50]

Подчеркну сразу, что советы, по поводу удаления 3-х последних символов или аналогичные им (например: найти букву 'г' и уталить все, что после нее) слишком очевидны, а потому неприемлимы.


Grihan   (2006-05-05 20:57:00) [51]

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

P.S. вопрос задан вполне конкретно: есть строка "10.10.2005 г.". Требуется преобразовать ее в дату, типа TDateTime.


Мефисто   (2006-05-05 20:42:00) [52]

DecodeDate()
StrToDate()

+ F1 or DateUtils.pas


Лшдлуттнсфе   (2006-05-05 20:29:00) [53]

StrToDateTime


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо