2012-11-21 19 views
2

請提供從數據庫獲取下一小時的代碼。比如我從數據庫中得到一個timestamp在java中獲取下一小時

String sqlupdate = "select UploadedDate from CAF_Entry where Status='new' and Reference=0 order by UploadedDate limit 1"; 
    System.out.println("sql query"+sqlupdate); 
    Statement stupdate = con.createStatement(); 
    ResultSet rsupdate = stupdate.executeQuery(sqlupdate); 
    if(rsupdate.next()) 
    { 
     date22=rsupdate.getTimestamp("UploadedDate"); 
     String stringdate=date22.toString();` 

我收到日期2012-11-12 10:30:00

我如何獲得接下來的一個小時,如2012-11-12 11:00:00

+6

我的建議是:替換代碼格式化乞討。 –

+2

什麼是date22? – PearsonArtPhoto

+0

下一個從什麼? – eis

回答

3
Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(date22.getTime); 
calendar.add(Calendar.HOUR, 1); 

後,您可以使用SimpleDateFormat,如果你希望它在形式的日期格式的字符串。如果您需要的話,Calendar.getTime()將返回java.util.Date對象。

0
String sqlupdate = "select UploadedDate from CAF_Entry where Status='new' and Reference=0 order by UploadedDate limit 1"; 
System.out.println("sql query"+sqlupdate); 
Statement stupdate = con.createStatement(); 
ResultSet rsupdate = stupdate.executeQuery(sqlupdate); 
if(rsupdate.next()) 
{ 
    DateTime date22=new DateTime(rsupdate.getTimestamp("UploadedDate").getTime()).plusHours(1); 

    String stringdate=date22.toString();` 

你需要使用joda-time,你應該使用的JDK日期/日曆clusterfsck是可怕的。

+0

導入joda時間,這將使用手鋸鋸時足夠。這裏沒有很好的理由避免使用日曆。 – gbtimmon

+0

我的一般原則是避免使用Java中的日曆/日期,因爲正如前面提到的那樣,如果您對這種方式感到如此強烈,那麼可以隨意更正代碼。 – hd1

0

使用下面的代碼片段

Calendar c = Calendar.getInstance(); 
c.setTimeInMillis(date22.getTime()); 
c.add(Calendar.HOUR, 1); 
Date d = c.getTime();