我在Karate场景中编写了javascript函数,函数在参数中接受当前日期,并获取日期、年份、月份并将它们添加到数组中。但是由于一些未知的原因,我得到了NaN值。请看下面的空手道台阶,我一直在使用。
* def dateArr2 = []
* def dateParse =
"""
function(myOrderDate)
{
dateArr2.add(myOrderDate); // this is for test purpose
var today = new Date(myOrderDate);
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
dateArr2.add(yyyy);
dateArr2.add(mm);
dateArr2.add(dd);
}
"""
* def ongoingDateTime = "2018-10-19T11:53:39.8795965Z"
* eval dateParse(ongoingDateTime) 注意,如果我在js执行环境(如sublime-text )中执行,类似的sublime-text代码对我有效。
发布于 2018-10-19 12:55:55
只需保持简单,请使用Java。在doc:https://github.com/intuit/karate#java-interop中有一些例子
如果太麻烦,请编写JS实用程序函数。
* def toDate =
"""
function(s) {
var SimpleDateFormat = Java.type('java.text.SimpleDateFormat');
var sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
return sdf.parse(s)
}
"""
* def raw = "2018-10-19T11:53:39.8795965Z"
* def date = toDate(raw)
* print date.day, date.month, date.year只要看看java.util.Date的API,现在就可以看到所有这些了。
https://stackoverflow.com/questions/52892338
复制相似问题