从字符串解析日期在android中给出异常

时间:2015-03-17 06:00:26

标签: java android date simpledateformat android-datepicker

我想从字符串解析字符串到日期,Date的格式类似于Tuesday March 19,2015。我想解析并格式化为yyyy-dd-mm格式。以下代码为我提供了例外情况"无法发布的日期"。

代码:

DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
try {
    date1 = df1.parse(currentDate);
    System.out
            .println("============my formated date====================" + date1.toString());
    Calendar cal = Calendar.getInstance();
    cal.setTime(date1);
    cal.add(Calendar.DATE, 10); // add 10 days

    date1 = cal.getTime();

    System.out.println("==============added date==============" + date1.toString());

2 个答案:

答案 0 :(得分:1)

在将其格式化为另一个日期之前,您必须将其解析为当前格式的日期

DateFormat df_parse = new SimpleDateFormat("EEEE MMM dd,yyyy");
Date date_parse = df_parse.format(currentDate);
DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
date1 = df1.parse(date_parse);

答案 1 :(得分:0)

我为转换日期格式创建了一个常用函数。您必须传递旧的日期格式,新的日期格式和日期。

public static String convertDateFormat(String oldFormat, String newFormat, String inputDate)
    {
        DateFormat theDateFormat = new SimpleDateFormat(oldFormat);
        Date date = null;

        try
        {
            date = theDateFormat.parse(inputDate);
        }
        catch (ParseException parseException)
        {
            // Date is invalid. Do what you want.
        }
        catch (Exception exception)
        {
            // Generic catch. Do what you want.
        }

        theDateFormat = new SimpleDateFormat(newFormat);
        return theDateFormat.format(date).toString();
    }

//调用函数

String convertedDate = convertDateFormat("EEEE MMM dd,yyyy","yyyy-MM-dd",dateToConvert);