Функция StrToTime вызывает ошибку 4051 - страница 2

 
qjol:
но вы должны использовать формат "yyyy.mm.dd hh:mm", иначе вы получите ошибку 4051
Хорошо, вы правы, либо справка в MetaEditor неправильная, либо есть ошибка, в любом случае об этом нужно сообщить в Service Desk Я сообщу об этом ... и о русском языке в английской справке.
Справочник MQL4 / Функции преобразования / StrToTime

StrToTime

Конвертирует строку в формате "yyyy.mm.dd hh:mi" в тип datetime (количество секунд, прошедших с 1 января 1970 года).

datetime StrToTime(
string value // string
);

Параметры

значение

[in] Строка в формате "yyyy.mm.dd hh:mi ".

Возвращаемое значение

Значение типа datetime в виде количества секунд, прошедших с 01.01.1970.

Пример:

datetime var1,var2,var3;
var1=StrToTime("2003.8.12 17:35");
var2=StrToTime("17:35"); // возвращает текущую дату с заданным временем
var3=StrToTime("2003.8.12"); // возвращает дату с полуночным временем "00:00"


 
RaptorUK:
Хорошо, вы правы, либо справка в MetaEditor неверна, либо есть ошибка, в любом случае об этом нужно сообщить в службу поддержки , я сообщу об этом ... и о русском языке в английской справке.

Это будет работать как обходной путь, дающий тот же результат...

  datetime xxxxx = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+"21:45");

... и без ошибки.

 
RaptorUK:

... и никакой ошибки.


конечно, это правильный формат
 

О чем вы говорите?

   Print((string)StringToTime("21:45"));
   datetime test = StringToTime("21:45");
   Print((string)test);
   Print(TimeToString(test, TIME_MINUTES));

дает

00:01:00 Test GOLD,M15: 2014.02.12 21:45:00
00:01:00 Test GOLD,M15: 2014.02.12 21:45:00
00:01:00 Test GOLD,M15: 21:45

Так что не так?

 
graziani:

О чем вы говорите?

дает

Так что не так?

StrToTime() не StringToTime()
 
graziani:

О чем вы говорите?

дает

Так что не так?


добавьте GetLastError() и вы узнаете.
 
RaptorUK:
StrToTime() не StringToTime()


не имеет значения, оба дают ошибку 4051
 

GetLastError() дает описание ошибки, только если она произошла и только если функция использует обработчик ошибок.

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

Str vs. String, для совместимости с исходным кодом следует использовать новые функции, так как они такие же, как и в MQL5.

Кроме того, если результаты соответствуют документации, почему вы настаиваете на ошибке?

 
graziani:

GetLastError() дает описание ошибки, только если она произошла и только если функция использует обработчик ошибок.

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

Str vs. String, для совместимости с исходным кодом следует использовать новые функции, так как они такие же, как и в MQL5.

Кроме того, если результаты соответствуют документации, почему вы настаиваете на ошибке?

ResetLastError() перед вызовом StrToTime(), а затем вызовите GetLastError() после этого .... StrToTime() не должен вызывать ошибку, но он ее вызывает... Это ошибка. Нечто подобное уже было признано и исправлено: https://www.mql5.com/en/forum/149475/page2.
 
graziani:


Str против String, следует использовать новые функции, так как они такие же, как в MQL5, для совместимости с исходным кодом.

Зачем мне нужна совместимость с mql5? Я использую код mql4 для MT4.
Причина обращения: