私はどういうわけかあなたが問題にしていることがここにあることを理解しています。文字列を「-」で分割して配列に格納し、配列内の各文字列をチェックし、それをintに解析してから、条件ステートメントを実行するなど、長い方法を試すことができます。
あなたが与えたものが次のフォーマットを持っていると仮定します"1990-02-07"year-month-day "1988-06-15T22:00:00.000Z" year-month-dayTtimeZ "12-02-1990" month-day-年
あなたはこのようなことを試すことができます。
public String convert(String s){
SimpleDateFormat newformat = new SimpleDateFormat("dd-MM-yyyy");
try{
if(s.contains("T")){
String datestring = s.split("T")[0];
SimpleDateFormat oldformat = new SimpleDateFormat("yyyy-MM-dd");
String reformattedStr = newformat.format(oldformat.parse(datestring));
return reformattedStr;
}
else{
if(Integer.parseInt(s.split("-")[0])>13){
SimpleDateFormat oldformat = new SimpleDateFormat("yyyy-MM-dd");
String reformattedStr = newformat.format(oldformat.parse(s));
return reformattedStr;
}
else{
SimpleDateFormat oldformat = new SimpleDateFormat("MM-dd-yyyy");
String reformattedStr = newformat.format(oldformat.parse(s));
return reformattedStr;
}
}
}
catch (Exception e){
return null;
}
}