我附上的代碼。在這段代碼中,我使用了一個字符串,它是一個來自平面文本文件的日期。它由AM/PM(12小時格式)組成。當我解析它時,它不能以24小時格式解析。我想要時間差b/w當前時間和文件中的字符串。並且由於AM/PM,它不能以24小時格式轉換。因此無論是PM還是AM都顯示相同的時差。所以,如果你有,請告訴我任何富有成效的建議。我會非常感謝你們。解析字符串日期和時間,但沒有得到適當的解析
公共類鑄件{
/**
* @param args
*/
static FileReader fw;
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
fw = new FileReader("E://796F_log.txt");
BufferedReader pw =new BufferedReader(fw);
String last_Line_From_File="" ;
for (String message = pw.readLine(); message != null ; message = pw.readLine()) {
last_Line_From_File = message;
}
String[] array_Of_Data = last_Line_From_File.split("\\s") ;
String time = array_Of_Data[0]+" "+array_Of_Data[1]+" "+array_Of_Data[2] ;
System.out.println(time);
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a");
Calendar cal = Calendar.getInstance();
String current_time = dateFormat.format(cal.getTime());
Date d1 = dateFormat.parse(time);
Date d2 = dateFormat.parse(current_time);
long total_time = d2.getTime()-d1.getTime();
total_time /= 1000 ;
System.out.println("current time "+d2.getHours()+":"+d2.getMinutes()+":"+d2.getSeconds()+"\n"+d1.getHours()+":"+d1.getMinutes()+":"+d1.getSeconds());
if(total_time <= 500)
{
System.out.println("working "+total_time);
}
else
System.out.println("nt working "+total_time);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("did the smart thing or dumb thing");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("we did attempt closing");
}
}
}
}
請提供輸入和輸出字符串....以便我們可以跟蹤錯誤.... – aProgrammer 2012-04-20 06:25:56
快速提示:您的問題會更清晰*沒有*所有的文件處理代碼,但*帶* a輸入樣本。您也不應該在'日期'內使用棄用的方法。 – 2012-04-20 06:27:17