Java 从cmd验证日期的方法
我需要验证两个日期,但我不知道哪种方式是最好的。 在mainclass中,我创建了一些对象,这些对象由构造函数传递给Java 从cmd验证日期的方法,java,validation,localdate,Java,Validation,Localdate,我需要验证两个日期,但我不知道哪种方式是最好的。 在mainclass中,我创建了一些对象,这些对象由构造函数传递给NBPParserEngine package pl.parser.nbp; import pl.parser.nbp.calculations.RateCalculations; import pl.parser.nbp.validation.ConditionChecker; import pl.parser.nbp.validation.ConditionCheckerSe
NBPParserEngine
package pl.parser.nbp;
import pl.parser.nbp.calculations.RateCalculations;
import pl.parser.nbp.validation.ConditionChecker;
import pl.parser.nbp.validation.ConditionCheckerService;
import pl.parser.nbp.historysystem.HistorySystem;
import pl.parser.nbp.historysystem.HistorySystemService;
import pl.parser.nbp.view.NbpParserView;
import java.time.LocalDate;
public class MainClass {
public static void main(String[] args) {
NbpParserView nbpParserView = new NbpParserView();
DataFetcher dataFetcher = new DataFetcher();
HistorySystem historySystem = new HistorySystemService();
RateCalculations rateCalculations = new RateCalculations();
ConditionChecker conditionChecker = new ConditionCheckerService();
NBPParserEngine nbpParserEngine = new NBPParserEngine(conditionChecker, dataFetcher, rateCalculations,
historySystem, nbpParserView);
String currency = args[0];
LocalDate startDate = LocalDate.parse(args[1]);
LocalDate endDate = LocalDate.parse(args[2]);
nbpParserEngine.executeNbpParserEngine(startDate, endDate, currency);
}
}
我需要验证这两个日期是否正确,因为如果不正确,就会抛出DateTimeParseException
。
我应该在主循环中使用
而不是循环和扫描程序来验证它,还是使用哪种方式?使用try-catch语句,例如:
LocalDate startDate = null;
try {
startDate = LocalDate.parse(args[1]);
} catch (DateTimeParseException dtpe) {
System.err.println("Start date \"" + args[1] + "\" is not a valid date.");
System.exit(-1);
}
对于结束日期也要这样做
搜索java异常处理
或类似内容以了解更多信息
是的,如果您的程序是交互式的,那么从命令行读取日期的另一种方法是使用扫描仪读取标准输入,并循环直到输入有效日期。我再次认为,搜索将引导您找到将其组合在一起所需的构建块