2012-10-17 54 views
0

如何獲得當前時間,因爲此代碼給(時間 - >星期四01 01 05:56:27 ACT 1970)?當前時間/日期代碼錯誤

DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss.SS"); 
     Date time = new Date(); 
     String currentTime=timeFormat.format(time); 
     time=timeFormat.parse(currentTime); 
     System.out.println("Time-->"+time); 
     salesOrder.setOrderTime(time); 
+0

use DateFormat timeFormat = new SimpleDateFormat();而不是DateFormat timeFormat = new SimpleDateFormat(「HH:MM:ss:SS」); – Jimmy

+0

哪裏*確切*你認爲問題是? –

+0

問題在於格式化。他沒有提供日期,年份說明者,這就是爲什麼這樣做。或OP可以使用這適當的格式:DateFormat timeFormat = new SimpleDateFormat(「EEE,d MMM yyyy HH:mm:ss Z」); – Jimmy

回答

0
use DateFormat timeFormat = new SimpleDateFormat(); 

代替

DateFormat timeFormat = new SimpleDateFormat("HH:MM:ss:SS"); 

的問題是在格式。你還沒有提供那天,那個年度的實習者,這就是爲什麼這樣做。或者您可以使用正確的格式使用:

DateFormat timeFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z"); 

編輯:

試試這個:

Calendar c = Calendar.getInstance(); 
    c.setTime(time); 
    System.out.println(c.get(Calendar.YEAR)+ " "+c.get(Calendar.MONTH)+ " "+ c.get(Calendar.DAY_OF_MONTH)); 

timeCalendar object是不會被解析/格式化使用SimpleDateFormat的時間。 從calendar object,你可以得到個人月,日,年,並以你喜歡的方式使用它,或者你可以撥打c.getTime()獲得Date object

+0

我想單獨的日期和分開的時間?我是如何得到它們的,我的意思是,我在數據庫中有兩個單獨的列,一個用於日期和其他時間,我的Bean使用Hibernate與數據庫映射,我需要數據庫中的Date對象類型,I我現在在數據庫中有(日期類型)日期和(時間類型)時間,你告訴的格式將產生一個完整的字符串,包括日期和時間?我將如何區分它們以將它們存儲在數據庫中的不同coloumns中? – Hasan

+0

答案已被修改,請檢查。 – Jimmy

1

java.util.Date不適合於僅存儲時間的日(小時,分鐘,秒,毫秒)。類Date是一個時間戳,它包含自01-01-1970,00:00:00 GMT以來的毫秒數。

使用來代替Joda Time庫。

注意:您在您的代碼正在做什麼是第一次格式化Date對象爲String,然後解析它回Date再次,扔掉日,月,年的一部分。最終結果是一個Date對象,它設置爲自01-01-1970,00:00:00 GMT以來的小時,分​​鍾,秒和毫秒數。

+0

Jesper,我在數據庫中有兩個單獨的列,一個用於日期和其他時間,我的Bean是使用Hibernate映射的,我需要日期類型的數據庫中的對象,我有(日期類型)日期和時間類型)。我不知道如何使用喬達時間庫,你可以給任何例子。 – Hasan

0

您的格式只包含小時,分鐘和秒。在沒有日期組件的情況下,僅給出一天的時間,DateFormat.parse()不填寫當前日期;它回落到系統的時代,即1970年1月1日的「時間零點」。如果你想要一個日期字符串可以轉換回日期對象,你還需要包括年月日作爲小時。

+0

我在數據庫中有兩個單獨的列,一個用於日期和其他時間,我的Bean使用Hibernate與數據庫映射,我需要對象的日期類型爲數據庫,我有(日期類型)日期和(時間類型)爲時間。我不知道如何分別獲取時間和日期,以便將它們存儲在相應的二傳手中。 – Hasan