空手道框架-为什么Javascript函数返回具有NaN值的数组?

时间:2018-10-19 12:28:13

标签: javascript sublimetext 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)     

请注意,如果我在javascript之类的js执行环境中执行代码,类似的sublime-text代码对我有用。

1 个答案:

答案 0 :(得分:1)

只需保持简单,请使用Java。文档中有示例:https://github.com/intuit/karate#java-interop

如果太麻烦了,请编写Java实用程序。

* 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,您现在就拥有了所有这些。