将yyyy-mm-dd转换为dd mm yyyy

时间:2013-06-26 15:17:31

标签: android simpledateformat q

如何将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" (在偏移4处)"

6 个答案:

答案 0 :(得分:40)

您需要两个DateFormat个实例:一个用于解析原始String,另一个用于输出您想要的实例。

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

答案 1 :(得分:3)

请看第一个问题是您对String和Date使用不同的分隔符。 所以你要么在String中使用“2013-06-24”到“2013 06 24”,要么将新的SimpleDateFormat(“dd MMM yyyy”)添加到新的SimpleDateFormat(“dd-MMM-yyyy”)。

第二个问题是你无法直接更改这样的格式,在String中你有年月日期格式,所以首先制作一个格式相同的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);

答案 2 :(得分:2)

更改

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

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

你必须遵循date1模式。然后,您可以使用

格式化已解析的日期
new SimpleDateFormat("dd MMM yyyy");

答案 3 :(得分:1)

public String getStringFormatted(String datestring) {
    String format = "dd MM yyyy";
    SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault());
    return sdf.format(new Date(datestring.replaceAll("-", "/")));
}

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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;

}

String convertedDate = formateDateFromstring(
    "yyyy-MM-dd",
    "dd/MM/yyyy",
    datestring);

updateInsuranceEventFragmentBinding.edtdate.setText(convertedDate);