Мне нужно написать функцию java для SAP PI, которая возвращает строку для моего сопоставления XML в формате: гггг-мм-дд T чч: мм: сс (например, 2018-08-15T00:00:00
), даже если мое поле источника просто поле даты без времени (например, 2018-08-15
).
Я пробовал SimpleDateFormat
класс Java, но не могу заставить его работать. Есть ли простой способ сделать это?
В предложенных постах (ответы / дубликаты / ссылки) я не смог найти то, что искал. Полагаю, я не достаточно ясно изложил проблему, но дело в том, что я получаю дату из исходного XML (SAP PO) и мне нужно преобразовать ее в дату ISO 8601 в целевом XML.
Благодаря Оле я придумал следующую функцию «для начинающих» (для полноты):
public String DH_FormatDateTimeStringB(String ndate, String npattern, Container container) throws StreamTransformationException{
//This function gets a date from the IDOC and returns it as a datetime string in ISO 8601 (ISO 8601 Representation of dates and times
//in information interchange required. Ex: npattern = "yyyy-MM-dd")
DateTimeFormatter formatterDate = DateTimeFormatter.ofPattern(npattern);
LocalDate date = LocalDate.parse(ndate, formatterDate);
//Convert date to datetime
LocalDateTime localDateTime1 = date.atStartOfDay();
//System.out.println(localDateTime1.toString());
return localDateTime1.toString();
}
Так как теперь она принимает только дату без времени, возможно, подойдет «StartOfDay». Возможно, позже я настрою его, чтобы увидеть, есть ли часть времени в строке.
Спасибо всем за помощь!