#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, но в строке моего значения