Java 将字符串转换为yyyyMMdd格式

Java 将字符串转换为yyyyMMdd格式,java,Java,我有一个字符串读取客户的出生日期,我正试图分配给另一个字符串,但我需要以yyyymmdd格式分配。我不确定客户设定的出生日期是什么格式 这是我的密码 String birthDate = request.getClient().getBirthDate(); patient().setDob_yyyymmdd(birthdate); 是否必须创建SimpleDataFormat: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd")

我有一个
字符串
读取客户的出生日期,我正试图分配给另一个
字符串
,但我需要以
yyyymmdd
格式分配。我不确定客户设定的出生日期是什么格式

这是我的密码

String birthDate = request.getClient().getBirthDate();
patient().setDob_yyyymmdd(birthdate);

是否必须创建SimpleDataFormat:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//Put the incoming format
然后创建一个

Date date =sdf.parse(yourincomingdate);
然后创建一个日期格式,将日期转换为另一种格式

DateFormat df = new SimpleDateFormat("HH:mm");

String reportDate = df.format(date);

您无法猜测输入日期的格式。 但是,如果您能够设法发现哪种是输入格式,则可以使用
SimpleDateFormat
类将
Date
对象转换为
字符串
,反之亦然

String inputDate, inputFormat; //inputFormat may be, eg, "MM-dd-yyyy", that is the part you still need to find out
Date foo = new SimpleDateFormat(inputFormat).parse(inputDate);
String output = new SimpleDateFormat("ddMMyyyy").format(foo);

你必须告诉客户一个特定的格式,因为你不知道他们使用的是什么格式,除非在某些情况下
20011223
可能是1223年1月20日或其他一些组合。请阅读为什么你要以字符串形式开始出生日期?理想情况下,尽可能多地避免代码的字符串表示-出生日期应该是
LocalDate
,而不是在边界(持久性或API)处,在边界处它可能需要转换为字符串。