解析从文件中读取的日期

时间:2011-02-21 06:13:49

标签: java parsing date

我在文件中记录为17 Dec 2010 17:02:24 17 Dec 2010 18:02:24。我正在从文件中读到这些.... 我的解析器代码是:

static SimpleDateFormat df = new SimpleDateFormat("dd MMM yyyy hh:mm:ss");

public static String DateFormat(String startdate) {

    String date = null;
    try {

        java.util.Date tDate = df.parse(startdate);

        df = new SimpleDateFormat("dd-MMM-yy hh:mm:ss a");
        String formatteddate = df.format(tDate).toUpperCase();

        return formatteddate;

    } catch (ParseException e) {
        System.out.println("Unable to Parse" + e);
    }
    return date;

}

但只有第一个日期格式被解析...然后错误无法解析

3 个答案:

答案 0 :(得分:2)

您在df方法中使用不同的格式(如下所示)重新编写DateFormat(...)值。 df是一个静态变量,因此它将使用这种新格式进行后续读取。 使用新的本地变量表示“dd-MMM-yy hh:mm:ss a”

df = new SimpleDateFormat("dd-MMM-yy hh:mm:ss a");

答案 1 :(得分:0)

我希望这会有所帮助。

   
static SimpleDateFormat inputDateFormat = new SimpleDateFormat("dd MMM yyyy hh:mm:ss");
static SimpleDateFormat outputDateFormat = new SimpleDateFormat("dd-MMM-yy hh:mm:ss a");

    public static String getFormattedDate(String startdate) {

    String date = null;
    try {

        java.util.Date tDate = inputDateFormat.parse(startdate);

        String formatteddate = outputDateFormat.format(tDate).toUpperCase();

        return formatteddate;

    } catch (ParseException e) {
        System.out.println("Unable to Parse" + e);
    }
    return date;

}

答案 2 :(得分:0)

你的问题是,你正在重新使用df,如Pangea所述。

static SimpleDateFormat df = new SimpleDateFormat("dd MMM yyyy hh:mm:ss");

public static String DateFormat(String startdate) {

    String date = null;
    try {

        java.util.Date tDate = df.parse(startdate);

        SimpleDateFormat outputDf = new SimpleDateFormat("dd-MMM-yy hh:mm:ss a");
        String formatteddate = outputDf.format(tDate).toUpperCase();

        return formatteddate;

    } catch (ParseException e) {
        System.out.println("Unable to Parse" + e);
    }
    return date;

}