函数StrToTime导致错误4051 - 页 2

 
qjol:
但是你必须使用 "yyyy.mm.dd hh:mm "的格式,否则你会得到错误4051。
好吧,你是对的,要么MetaEditor的帮助是错误的,要么有一个bug,无论哪种方式,都需要报告给服务台 ,我会 报告的 . . . 还有英文帮助中的俄文。
MQL4 参考 / 转换函数 / StrToTime

读取时间

将格式为 "yyyy.mm.dd hh:mi "的字符串转换为数据时间类型(自1970年1月1日以来所经过的秒数)。

datetime StrToTime(
string value // string
);

参数

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

返回的值

日期 类型的值为秒数,从1970年1月1日开始传递。

例子。

数据 时间 var1,var2,var3。
var1=StrToTime("2003.8.12 17:35");
var2=StrToTime("17:35"); // 返回给定时间的当前日期
var3=StrToTime("2003.8.12"); // 返回午夜时间为 "00:00 "的日期


 
RaptorUK:
好吧,你是对的,要么MetaEditor的帮助是错误的,要么有一个bug,无论如何都需要报告给服务台 ,我会 报告的 ... ...还有英文帮助中的俄语。

这将作为一种变通方法,产生同样的结果。

  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中的函数相同,以获得源兼容性。

另外,如果结果与文件规定的一样,你为什么坚持使用错误?

调用StrToTime() 之前重置最后的错误(),然后在之后调用GetLastError() . . StrToTime()不应该导致错误,但它确实导致了错误 . . . 这是一个错误。 类似的东西已经被确认并修复 :https://www.mql5.com/en/forum/149475/page2
 
graziani:


Str vs. String,你应该使用新的函数,因为它们与MQL5中的函数相同,以获得源兼容性。

为什么我想与MQL5兼容? 我在为MT4使用mql4代码。