मैंने कराटे परिदृश्य में जावास्क्रिप्ट फ़ंक्शन लिखा और फ़ंक्शन तर्क में वर्तमान तिथि लेता है और दिनांक, वर्ष, माह प्राप्त करता है और उन्हें एक सरणी में जोड़ता है। लेकिन किसी अज्ञात कारण से मुझे 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 में निष्पादित कर रहा हूं।

2
MKod 19 अक्टूबर 2018, 15:28

1 उत्तर

सबसे बढ़िया उत्तर

बस इसे सरल रखें और कृपया जावा का उपयोग करें। दस्तावेज़ में उदाहरण हैं: 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 के लिए एपीआई देखें और अब आपके पास वह सब है।

2
Peter Thomas 12 मार्च 2021, 09:00