我在文件中记录为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;
}
但只有第一个日期格式被解析...然后错误无法解析
答案 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;
}