在javaEE中将字符串yyyy mm dd转换为日期

在javaEE中将字符串yyyy mm dd转换为日期,java,date,simpledateformat,Java,Date,Simpledateformat,我需要将以下格式的日期yyyy-mm-dd转换为格式dd/mm/yyyy或dd-mm-yyyy的日期,是否可行。我得到了一个不可原谅的例外 我有以下代码: String fechaInicial= docudetalle.getfechainicial(); String fechaFinal= docudetalle.getfechafinal(); String fechaEspecial= docudetalle.getfechaespecial(); SimpleDateFormat

我需要将以下格式的日期yyyy-mm-dd转换为格式dd/mm/yyyy或dd-mm-yyyy的日期,是否可行。我得到了一个不可原谅的例外

我有以下代码:

String fechaInicial= docudetalle.getfechainicial();
String fechaFinal= docudetalle.getfechafinal();
String fechaEspecial= docudetalle.getfechaespecial();


SimpleDateFormat formatter  = new SimpleDateFormat("dd-mm-yyyy");
Date dateInicial = formatter.parse(fechaInicial);
Date dateFinal = formatter.parse(fechaFinal);
Date dateEspecial = formatter.parse(fechaEspecial);

转换后,我需要得到三个日期之间的差值,以在表中显示天数的变化。如何获得日期的差异,我知道使用日历实例更容易获得差异。有更简单的方法吗?

使用
LocalDate
DateTimeFormatter
操作日期

String source = "2020-04-22";

LocalDate src = LocalDate.parse(source, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String dst = src.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
System.out.println(dst);

// or

dst = src.format(DateTimeFormatter.ofPattern("dd-MM-yyyy"));
System.out.println(dst);
印刷品

22/04/2020
22-04-2020

您可以在此处检查已回答的问题。这里有一个相关的答案可以帮助你。请澄清您的问题:(a)如何将日期格式从
yyyy-MM-dd
转换为
dd-MM-yyyy
dd/MM/yyyyy
或(b)计算3个给定日期之间的天数差(哪一个日期为基准?)。我建议您不要使用
SimpleDateFormat
date
。这些类设计得很糟糕,而且早已过时,其中前者尤其令人讨厌。相反,请使用来自的
LocalDate
DateTimeFormatter
。欢迎使用堆栈溢出。当询问异常时,请将stacktrace粘贴到问题中,并以代码的形式很好地格式化。通常这会让你更容易得到帮助。