Java 将日期作为字符串转换为另一种格式的日期作为字符串

Java 将日期作为字符串转换为另一种格式的日期作为字符串,java,string,date,formatting,Java,String,Date,Formatting,如何解析字符串“2013-03-31”,我将得到“2013年3月31日Sun”。 我试着分析如下: final SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy DD"); try { Date data = formatter.parse(eventDate); System.out.println(data); } catch (Exception e) { System.out.println

如何解析字符串“2013-03-31”,我将得到“2013年3月31日Sun”。 我试着分析如下:

final SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy DD");
try {
    Date data = formatter.parse(eventDate);
    System.out.println(data);
} catch (Exception e) {
    System.out.println(e.getMessage());
}
我得到了不可解析的日期:“2013-03-31”(在偏移量10处)异常文本

表示日期的字符串是否正确,如果正确,我必须如何解析它。

查看这些链接

迄今为止的字符串

日期字符串

输入格式:
“yyyy-MM-dd”

输出格式:
“dd-MMMM-yyyy-EEE”


您没有指定日期输入格式:

String eventDate = "2013-03-31";

final SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
final SimpleDateFormat outputFormat = new SimpleDateFormat(
        "dd MMMM yyyy EEE");
try {

    Date date = inputFormat.parse(eventDate);
    System.out.println(outputFormat.format(date));

} catch (Exception e) {

    e.printStackTrace();

}

请确保传递给您的
SimpleDataFormat
的格式与您试图解析的格式匹配。我如何确保它?@Procurares。来自Javadoc。@Procurares:您真的不需要Android标记,那么我如何在2013年8月18日周日编写输出格式“dd-MMMM-yyy-EEE”?您的问题解决了吗?要完整地说明一周中的哪一天,请尝试
EEEE
而不是
EEE
String eventDate = "2013-03-31";

final SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
final SimpleDateFormat outputFormat = new SimpleDateFormat(
        "dd MMMM yyyy EEE");
try {

    Date date = inputFormat.parse(eventDate);
    System.out.println(outputFormat.format(date));

} catch (Exception e) {

    e.printStackTrace();

}
public static String getGmtTmFromLcl(String inputDtm, String inputFormat, String outputFormat) throws Exception {
        SimpleDateFormat format = new SimpleDateFormat(inputFormat);
        Date dt = format.parse(inputDtm);
        format = new SimpleDateFormat(outputFormat);
        return format.format(dt);
    }