2012-03-01 63 views
1

在我的應用程序中,用戶輸入日期,然後輸入時間。日曆會彈出一個日期,並且一個時鐘會彈出。將它們存儲在需要將它們組合成一個日期時間的數據庫中,我將它們轉換爲int。我有fmtDate有日期和fmtTime有時間。我將如何結合他們。如何合併數據時間

用戶點擊文本框並彈出日曆。用戶選擇他們想要的日期,那就是fmtDate。

用戶點擊下一個文本框並彈出一個時鐘。用戶選擇他們想要的日期,這是fmtTime。

我想將它們連接到newTime,然後fmtDate然後fmtTime。所以我可以使用 int currentTime =(int)((newTime).toMillis(true)/ 1000); 並將其存儲在數據庫中

+0

你可以給我你兩個字符串和什麼格式清楚編輯你的問題與你有什麼,你想要什麼 – 2012-03-01 18:12:06

+0

@Samir我增加了更多的細節。希望它更清晰 – Aaron 2012-03-01 18:19:05

+0

Nop給你想要在millis中轉換的字符串 – 2012-03-01 18:24:17

回答

1

與其試圖將兩個字符串轉換爲DateTime對象,我建議您按照這樣做。

1)創建一個java.util.Calendar對象:

Calendar cal = Calendar.getInstance(); 

2)當用戶選擇通過點擊日曆,除打印格式化的日期到文本字段中的日期,也設置此日期爲您的日曆對象:

cal.set(Calendar.DATE, <date>); 
cal.set(Calendar.MONTH, <month>); 
cal.set(Calendar.YEAR, <year>); 

3)當用戶選擇通過點擊時鐘,除了打印格式化的時間到文本字段時,還成立這個時候到你的日曆對象:

cal.set(Calendar.HOUR_OF_DAY, <hour>); 
cal.set(Calendar.MINUTE, <minute>); 
cal.set(Calendar.SECOND, <second>); 

4)當你需要插入日期/時間到數據庫中,只需創建從您的日曆中java.util.Timestamp對象:

Timestamp tmstmp = new Timestamp(cal.getTimeInMillis); 

5)現在,假設你有一個表是這樣的:

CREATE TABLE my_table (
    n_id  INTEGER, 
    dt_time  TIMESTAMP 
); 

然後你就可以將新創建​​的時間戳,像這樣:

Connection con = DriverManager.getConnection(...); 
String sql = "INSERT INTO my_table (n_id, dt_time) VALUES (?, ?)"; 
PreparedStatememt stmt = con.prepareStatement(sql); 
stmt.setInteger(1, 1); 
stmt.setTimestamp(2, tmstmp); 
stmt.executeUpdate(); 
+0

它應該顯示爲一個有趣的數字?我使用斷點和tmpstp看起來沒有什麼組合的日期和時間 – Aaron 2012-03-01 19:08:37

+0

時間戳將是一個很長的數字 - 自1970年1月1日以來的毫秒數。我在我的答案中添加了兩行以顯示如何使用它。 – 2012-03-02 08:43:03

0

假設你正在創建java.util.Date對象:

Date date, time; 

...

Calendar c = Calendar.getInstance(); 
c.setTimeInMillis(date.getTime() + time.getTime()); 

Java 6中有一個非常糟糕的時間API。如果你有額外的時間操作,我強烈建議使用Joda Time