2013-06-24を2013年6月24日に変換する方法は?私は以下のコードを使用しています。
date1="2013-06-24";
SimpleDateFormat d= new SimpleDateFormat("dd MMM yyyy");
try{
date2 = d.parse(date1);
}catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
しかし、このエラー「Java.text.ParseException:Unparseable date: "2013-06-24"(at offset 4)」が表示されます。
2つのDateFormat
インスタンスが必要です。1つは元のString
を解析するためのもので、もう1つは必要なものを出力するためのものです。
DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
DateFormat outputFormat = new SimpleDateFormat("dd MMM yyyy");
String inputDateStr="2013-06-24";
Date date = inputFormat.parse(inputDateStr);
String outputDateStr = outputFormat.format(date);
最初の問題は、文字列と日付に異なる区切り文字を使用していることです。したがって、文字列で「2013-06-24」から「2013 06 24」を実行するか、新しいSimpleDateFormat( "dd MMM yyyy")から新しいSimpleDateFormat( "dd-MMM-yyyy")を実行します。
そして2番目の問題は、このような形式を直接変更できないことです。文字列では年月日形式を使用しているため、最初に同じ形式のDateオブジェクトを作成してから、以下のように目的の形式に変更します。
date1="2013-06-24";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date dt = format.parse(date1);
SimpleDateFormat your_format = new SimpleDateFormat("dd-MMM-yyyy");
date2 = your_format.format(dt);
変化する
SimpleDateFormat d= new SimpleDateFormat("dd MMM yyyy");
と
SimpleDateFormat d= new SimpleDateFormat("yyyy-MM-dd");
date1パターンに従う必要があります。次に、解析した日付を次のようにフォーマットできます。
new SimpleDateFormat("dd MMM yyyy");
public String getStringFormatted(String datestring) {
String format = "dd MM yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault());
return sdf.format(new Date(datestring.replaceAll("-", "/")));
}
public static String formateDateFromstring(String inputFormat, String outputFormat, String inputDate){
Date parsed = null;
String outputDate = "";
SimpleDateFormat df_input = new SimpleDateFormat(inputFormat, Java.util.Locale.getDefault());
SimpleDateFormat df_output = new SimpleDateFormat(outputFormat, Java.util.Locale.getDefault());
try {
parsed = df_input.parse(inputDate);
outputDate = df_output.format(parsed);
} catch (ParseException e) {
}
return outputDate;
}
文字列convertedDate = formateDateFromstring( "yyyy-MM-dd"、 "dd/MM/yyyy"、datestring); updateInsuranceEventFragmentBinding.edtdate.setText(convertedDate);
public String inputFormatget (String datestring1) {
String format = "dd MM yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault());
return sdf.format(new Date(datestring.replaceAll("-", "/")));
}
public String outFormatset (String datestring2) {
String format = "dd MM yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault());
return sdf.format(new Date(datestring.replaceAll("-", "/")));
}