как уменьшить количество дд / ММ / гггг дней -1

#java #oracle-adf

#java #оракул-adf #oracle-adf

Вопрос:

 AttributeBinding attrs = 
    (AttributeBinding)bindingss.getControlBinding("FagDatfin");`

SimpleDateFormat fts = new SimpleDateFormat("dd/MM/yyyy");
String dateattrs = fts.format(attrs);
System.out.println(dateattrs);
Date date = fts.parse(dateattrs);`

attrs.setInputValue(date); 
  

как уменьшить количество дней -1, например, 23/04/2018 изменить на 22/04/2019

Комментарии:

1. предпочитаю использовать LocalDate, а не Date. Дата устарела. LocalDate поставляется со своими собственными, лучше разработанными классами использования и форматерами. Затем используйте plusDays(-1).

Ответ №1:

Начиная с Java 8, вы можете использовать DateTimeFormatter вместо SimpleDateFormat .

Вы сможете преобразовать строку в LocalDate , которая содержит удобные методы, такие как … minusDays() :

 DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate localDate = LocalDate.from(dateTimeFormatter.parse("23/04/2018")).minusDays(1);
System.out.println(dateTimeFormatter.format(localDate));
  

Комментарии:

1. если изменить LocalDate LocalDate = LocalDate.from(DateTimeFormatter.parse(«23/04/2018»)).minusDays(1); изменить LocalDate LocalDate = LocalDate.from(DateTimeFormatter.parse(«attrs»)).minusDays(1); Ошибка

2. @Souhaiel dateTimeFormatter.parse("attrs") не имеет смысла. Вы должны проанализировать дату. Что-то вроде dateTimeFormatter.parse("25/12/2019")

3. мне нравится изменять значение этого атрибута FagDatfin в AttributeBinding attrs = (AttributeBinding)bindingss.getControlBinding(«FagDatfin»);`AttributeBinding attrs = (AttributeBinding)bindingss.getControlBinding(«FagDatfin»); DateTimeFormatter DateTimeFormatter = DateTimeFormatter. ofPattern(«dd /MM /yyyy»); LocalDate LocalDate = LocalDate.from(DateTimeFormatter.parse(«attrs»)).minusDays(1); System.out.println(«test» DateTimeFormatter.format(LocalDate));

4. @Souhaiel Можешь попробовать dateTimeFormatter.parse(attrs.getInputValue()) ?

5. проблема в атрибуте типа FagDatfin TimesTamp, но в строке моего значения