Форматирование даты в каратэ - PullRequest
1 голос
/ 13 января 2020

У меня есть указанная ниже дата, возвращенная из запроса SQL в файле функций каратэ:

2020-01-31 00: 00: 00.0

I нужно конвертировать в формат: 31-JAN-20. Я попробовал ниже:

* def effectiveDt = 
            """
            function(s) {
      var SimpleDateFormat = Java.type('java.text.SimpleDateFormat');
      var sdf = new SimpleDateFormat("dd-mon-yy");
      return return sdf.format(s)                   
            }
        """

, но это не работает для меня. но ниже работает и возвращает 31-00-19, но я хочу, чтобы формат 31-JAN-20

var sdf = new SimpleDateFormat("dd-mm-yy");

Любая помощь будет оценена!

1 Ответ

1 голос
/ 04 февраля 2020

Вот пример, который работал для меня:

* def getSubtractedYear =
"""
function(s) {
  var DateTimeFormatter = Java.type("java.time.format.DateTimeFormatter");
  var LocalDate = Java.type("java.time.LocalDate");
  var ChronoUnit = Java.type("java.time.temporal.ChronoUnit");
  var dtf = DateTimeFormatter.ofPattern("MM/dd/yyyy");
  try {
    var adj = LocalDate.parse('02/02/2020', dtf).minusMonths(12);
    return dtf.format(adj);
  } catch(e) {
    karate.log('*** date parse error: ', s);
  }
} 
"""

И звоните как:

* string subtracted = call getSubtractedYear aDate
...