Задать вопрос
@A_Aidana

Как разбить значение на 3 части?

Изначально Дата приходит в следующем формате: dd.mm.yyyy
Поменяла на формат dd-mm-yyyy.
Теперь нужно поменять день и год местами. Не могу разбить значение и поменять местами. Помогите пожалуйста

String format = #IN_START_DATE;

if(#IN_STM_STATUS.equals("SUCCESS")){
return format = #IN_START_DATE.replace('.','-');
 String str = format;
 String[] parts = str.split("-");
 String part1 = parts[0];
 String part2 = parts[1];
 String part3 = parts[2];
          
 String correct_date = {'part1', 'part2', 'part3'};
 String temp = correct_date[0];
 correct_date[0] = correct_date[2];
 correct_date[2] = temp;
 System.out.println(Arrays.toString(correct_date));
}
else {
	return #IN_JOB_WORK_PLC;
}


Вот такая ошибка:
Error: java.lang.Exception: FN_START_DATE[source error] bad array access
  • Вопрос задан
  • 127 просмотров
Подписаться 1 Простой 9 комментариев
Пригласить эксперта
Ответы на вопрос 2
@odissey_nemo
Программист, ГИС-системы, растры, космоснимки
Можно так:
...
        // Test to change datetime items in text form

        SimpleDateFormat sdfIn  = new SimpleDateFormat( "dd.mm.yyyy" );
        SimpleDateFormat sdfOut = new SimpleDateFormat( "yyyy.mm.dd" );

        String strIn = "25.11.2023";
        Date dt = sdfIn.parse( strIn );
        String strOut = sdfOut.format( dt );

        System.out.printf( "+++ Convert date format: '%s' -> '%s'%n", strIn, strOut );
...

Результат: +++ Convert date format: '25.11.2023' -> '2023.11.25'
Ответ написан
Комментировать
@A_Aidana Автор вопроса
Благодарю за подсказки!
В итоге я сделала вот так:)
Date[] res = new Date[#IN_STM_OPER_DATE.length];
//format = new SimpleDateFormat("yyyy-MM-dd");

if(#IN_STATMENT != null){

//цикл по одномерному массиву произведенных операций в выписке
for (int x = 0; x < #IN_STM_OPER_DATE.length; x++) {

// проверяем статус выписки и меняем формат
if (#IN_STM_BANK.equals(#CN_STM_KASPI) && #IN_STM_OPER_DATE[x] != null && (#IN_STM_STATUS.equals(#CN_STM_STATUS_SUCCESS))) {
String correct_year = #IN_STM_OPER_DATE[x].replace(".","-");
String new_s = (new StringBuilder(correct_year)).insert(6, "20").toString();
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
Date date = format.parse(new_s);

res[x] = date;
}else{
String correct_year = #IN_STM_OPER_DATE[x].replace(".","-");
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
Date date = format.parse(correct_year);

res[x] = date;
}
}
}
return res;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы