Перестала работать StrToDateTime [РЕШЕНО]

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Владимир
постоялец
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Перестала работать StrToDateTime [РЕШЕНО]

Сообщение Владимир »

Всем доброго! Внезапно перестала работать ф-ция StrToDateTime, причем
и под Win7, и под Linux (Laz1.6). Похоже, что-то сломал? Создал новый проект с нуля - там то же самое.

Код: Выделить всё

procedure TMainFrm.FormCreate(Sender: TObject);
var
i,j:Integer;
ss,fs,cs,nm:String;
myList:TStringList;
dt:TDateTime;
flFile:Boolean;
Label ff;
begin
 DefaultFormatSettings.ShortDateFormat:='dd.mm.yy';
 nm:='23.05.17 12:12:00';
 dt:=StrToDateTime(nm);

Получаю: "23.05.17" is not a valid date format.
Последний раз редактировалось Владимир 10.12.2017 11:08:16, всего редактировалось 1 раз.
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

Владимир писал(а):is not a valid date format.

В laz 1.9 + win10 - всё корректно работает.
Владимир
постоялец
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Сообщение Владимир »

vitaly_l писал(а):
Владимир писал(а):is not a valid date format.

В laz 1.9 + win10 - всё корректно работает.

Так у меня вчера в 1.6 все работало...
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

Владимир писал(а):Владимир писал(а): is not a valid date format.
vitaly_l писал(а): В laz 1.9 + win10 - всё корректно работает.
Владимир писал(а): Так у меня вчера в 1.6 все работало...


И что Вы пили этой ночью?
Быть может курили что-то этой ночью?
Таблетки? Порошок? Клей?
Владимир
постоялец
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Сообщение Владимир »

vitaly_l писал(а):
Владимир писал(а):Владимир писал(а): is not a valid date format.
vitaly_l писал(а): В laz 1.9 + win10 - всё корректно работает.
Владимир писал(а): Так у меня вчера в 1.6 все работало...


И что Вы пили этой ночью?
Быть может курили что-то этой ночью?
Таблетки? Порошок? Клей?


Смешно.
Заработало вот так

Код: Выделить всё

DefaultFormatSettings.ShortDateFormat:='dd.mm.yy';
DefaultFormatSettings.DateSeparator:='.';
st:='12.06.17 12:23:00';
dt:=StrToDateTime(st);

Все равно странно - раньше разделитель не указывал - все работало...
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Владимир писал(а):раньше разделитель не указывал - все работало...


Так могли поменять разделитель по умолчанию
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

Владимир писал(а):Все равно странно - раньше разделитель не указывал - все работало...



DefaultFormatSettings

Storage for default settings
Declaration

Source position: sysinth.inc line 57

var DefaultFormatSettings: TFormatSettings = (CurrencyFormat: 1; NegCurrFormat: 5; ThousandSeparator: ','; DecimalSeparator: '.'; CurrencyDecimals: 2; DateSeparator: '-'; TimeSeparator: ':'; ListSeparator: ','; CurrencyString: '$'; ShortDateFormat: 'd/m/y'; LongDateFormat: 'dd" "mmmm" "yyyy'; TimeAMString: 'AM'; TimePMString: 'PM'; ShortTimeFormat: 'hh:nn'; LongTimeFormat: 'hh:nn:ss'; ShortMonthNames: ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); LongMonthNames: ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); ShortDayNames: ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'); LongDayNames: ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); TwoDigitYearCenturyWindow: 50);


...не должно оно было нормально работать при таком определении, разве что локаль операционной системы подставляет другие значения при инициализации RTL.
Ответить