如何将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处)"
答案 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);