我從Oracle數據庫的開始日期和結束日期獲取2個時間戳。他們來這種格式yyyy-MM-dd HH:mm:ss.SSS
處理日期的問題
現在我從文本文件獲取另一個時間戳比較。它是字符串格式。以下是我編寫的用於提取所需信息的代碼。
DateFormat f = new SimpleDateFormat("EEE MMM dd HH:mm:ss zz yyyy");
Date date = f.parse("Tue Aug 23 20:00:03 PDT 2011");
System.out.println("---date----" + f.format(date));
String originalDate = f.format(date);
System.out.println("---originalDate----" + originalDate);
DateFormat f2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String dateParse = f2.format(date);
System.out.println("---dateParse----"+dateParse);
我得到的輸出有點奇怪,而且非常不一致。以下是樣品 ---日期---- 8月23日星期二20:00:03 PDT 2011 --- originalDate ---- 8月23日星期二20:00:03 PDT 2011 --- dateParse ---- 2011-08-24 08:30:03.000
在上面的輸出中我對---- dateparse --- value感興趣,因爲我需要這個比較。 現在,如果您看到值在理想情況下變化,兩者應該是相同的值。
這裏的問題是,如果輸出隨時區而變化,那麼我該如何在代碼中對來自數據庫的數據進行比較?
我只需要看看--dateparse--位於從db獲取的日期範圍之間。 此代碼是否可以正常工作,與時區無關或者此處存在問題。 如果日期不同,那麼我的比較可能會出錯,或者是上述2個輸出的正確方法。
你能告訴我如何解決這個問題。
數據庫中數據的時區是什麼? (它真的*在文本字段中?您不需要解析數據庫中的數據...) –
我同意@Jon。您不必從數據庫中解析日期爲字符串。它應該像java.util.Date一樣來... – gdfbarbosa