Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизПроблемы с StrToDate Найти похожие ветки
← →
ZrenBy (2003-10-28 09:39) [0]Приветствую всех.
Тестирую свое произведение на всех возможных и
невозможных режимах.
Сегодня утром меня посетила конгениальнейшая идея.
И я залез в Regional Options -> Date и
поставил Date Separator = "тчк"
А что ? Имею право ? Или заказчик, платящий деньги,
имеет право, а ?
Результат оказался предсказуемым. Полный облом на
StrToDate("2002тчк10тчк28") + на всем остальном
Посему хочется узнать.
1. В D7 также, или нет.
2. И какие могут быть пути решения проблемы, кроме как
считывать
GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE
GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SDATE
и делать все своими руками
← →
Digitman (2003-10-28 09:49) [1]есть глоб.переменная DateSeparator, куда при инициализации приложения считывается дифолт-значение из рег.настроект системы
ты волен изменить содержимое этой переменной нужным тебе образом, ни на что кроме дальнейшей работы твоего приложения это не повлияет. Все ф-ции конвертации, работающие с датой в строк.представлении, используют значение именно этой переменной
← →
ZrenBy (2003-10-28 09:52) [2]Не пройдет
var DateSeparator: Char;
← →
mrcat (2003-10-28 09:55) [3]>ZrenBy © (28.10.03 09:52) [2]
>Не пройдет
а что, собственно, нужно ?
← →
Digitman (2003-10-28 09:58) [4]
> ZrenBy
это почему же ?
← →
ZrenBy (2003-10-28 09:58) [5]>>mrcat © (28.10.03 09:55) [3]
Нужна адекватная работа со всеми законными в Win форматами дат.
В том числе и с YYYYтчкMMтчкDD
← →
ZrenBy (2003-10-28 10:00) [6]>>Digitman © (28.10.03 09:58) [4]
Как пример
DateSeparator := "тчк";
[Error] Unit1.pas(66): Incompatible types: "Char" and "String"
← →
Digitman (2003-10-28 10:01) [7]
> ZrenBy
а при чем здесь формат представления даты ? речь-то идет о символе-разделителе компонентов даты ! который будет подставляться при формировании строкового представления даты в позиции, соответствующие формату
← →
Anatoly Podgoretsky (2003-10-28 10:04) [8]ZrenBy © (28.10.03 09:52) [2]
Так ты оказывается знаешь, что формат CHAR
ZrenBy © (28.10.03 09:58) [5]
В том числе например и 2 - YYYY2MM2DD
Ну диагноз по твоему желанию не буду ставить, это домашнее задание.
← →
Digitman (2003-10-28 10:05) [9]
> ZrenBy
ах вон оно что !)
не знаю что за блажь с этим "тчк", но и эта задача решается до смешного просто :
showmessage(formatdatetime("dd тчк mm тчк yyyy", now));
← →
ZrenBy (2003-10-28 10:06) [10]Хм-м.
Русским языком пишу, что в Win законным является
не символ-разделитель, а строка символов, являющаяся
Date Separator
Забудьте о символе
← →
ZrenBy (2003-10-28 10:07) [11]>>Anatoly Podgoretsky © (28.10.03 10:04) [8]
Вот именно
← →
Anatoly Podgoretsky (2003-10-28 10:08) [12]ZrenBy © (28.10.03 10:06) [10]
Русским языком еще раз, ты знаешь, что в Дельфи DateSeparator: Char;
← →
Digitman (2003-10-28 10:21) [13]проблема, очевидно, в этом :
в модуле SysUtils фигурирует :
var
DateSeparator: Char;
DateSeparator := GetLocaleChar(DefaultLCID, LOCALE_SDATE, "/");
вместо желаемого тобой :
var
DateSeparator: String;
DateSeparator := GetLocaleStr(DefaultLCID, LOCALE_SDATE, "/");
ничего тут не поделаешь, придется реализовать ф-цию StrToDate() нужным тебе образом
← →
Vovchik_A (2003-10-28 10:47) [14]А ты ваще че сделать то хочешь ?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c