web-dev-qa-db-ja.com

yyyy-mm-ddをddmmyyyyに変換する

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)」が表示されます。

14
user1740281

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);
42
duffymo

最初の問題は、文字列と日付に異なる区切り文字を使用していることです。したがって、文字列で「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);
3
Priyank Joshi

変化する

SimpleDateFormat d= new SimpleDateFormat("dd MMM yyyy");

SimpleDateFormat d= new SimpleDateFormat("yyyy-MM-dd");

date1パターンに従う必要があります。次に、解析した日付を次のようにフォーマットできます。

new SimpleDateFormat("dd MMM yyyy");
2
Blackbelt
public String getStringFormatted(String datestring) {
    String format = "dd MM yyyy";
    SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault());
    return sdf.format(new Date(datestring.replaceAll("-", "/")));
}
2
Marcela
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);

1
Rajshah
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("-", "/")));
    }
1
Rajshah