【发布时间】:2020-06-17 23:44:25
【问题描述】:
这里是菜鸟!首先,我尝试比较dateOne 和dateTwo,然后将最近日期(> 0) 与cutOffDate 进行比较。
如果它在cutOffDate 之后,则将其设置为FinalDate,否则将cutOffDate 设置为FinalDate。我怎样才能做到这一点?
我不确定我是否在正确的轨道上,dateOne.compareTo(dateTwo) 出现以下错误:
String类型中的compareTo(String)方法不适用于参数(Date)
public DateServiceImpl process(final DateServiceImpl item) throws Exception {
final Date dateOne = item.getDateOne();
final Date dateTwo = item.getDateTwo();
final BigDecimal amountOne= item.getAmountOne();
final BigDecimal amountTwo= item.getAmountTwo();
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
String cutOffDate = "01/01/2020";
Date cDate = sdf.parse(cutOffDate);
if ((amountOne.compareTo(BigDecimal.ZERO) > 0) && (amountTwo.compareTo(BigDecimal.ZERO) > 0)){
if (dateOne.compareTo(dateTwo) <= 0) {
item.setFinalDate(cDate);
}
return null;
}
}
【问题讨论】:
-
dateOne.compareTo(dateTwo)似乎有问题...请澄清“似乎有问题”的确切含义。如果有错误,错误是什么。如果出现意外结果,实际结果和预期结果是什么? -
我建议你不要使用
SimpleDateFormat和Date。这些类设计不良且过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalDate和DateTimeFormatter。 -
在 Stack Overflow 上发帖时,请从您的问题中删除所有无关代码。使用
BigDecimal的部分与本主题无关,应该删除。 -
java.util.Date或java.sql.Date?
标签: java