2011-05-06 22 views
21

İki farklı tarih nesnesi arasındaki zaman farkını java'da bulmak zorundayım ve eğer bu süre 5 saniyeyi aşarsa oturumu geçersiz kılmalıyım. İşte Java'da iki tarih arasındaki zaman farkı

senaryo: Her 5 sn

session.setAttribute("sessionAccessedAt", new Date()); 

Ben her 1 saniyede erişilen bir başka jsp sayfası vardır ben oturumu ayarlanmış bir jsp sayfası vardır

Date date2 = new Date(); 

Şimdi, bahsettiğim başka bir jsp ile karşılaştırmak ve oturumu geçersiz kılmak zorundayım,

Date date1 = (Date)session.getAttribute("sessionAccessedAt"); 
Date date2 = new Date(); 

Differnce = date2 - date1; 

Eğer fark 5 sn'yi aşarsa, oturumu geçersiz kılar.

cevap

59
long difference = date2.getTime() - date1.getTime(); 

    // now you have your answer in milliseconds - 
//so divide by 1000 to get the time in seconds 
+0

İşe yaradı .... Şerefe ... :) – harishtps

7
if ((date2.getTime() - date1.getTime()) > 5000) { // getTime returns the time in milliseconds 
    // invalidate 
} 

Ama oturum zaman aşımı, senin tarafından konteyner tarafından ele alınması gerekiyordu.

Not: Bu kolayca javadoc okuyarak cevaplanır: ... java.util.concurrent.TimeUnit çok kolay vb milisaniye saniye arasında dönüştürme yapar diğer cevaplara http://download.oracle.com/javase/6/docs/api/index.html

6

Bina

long differenceInSeconds = TimeUnit.MILLISECONDS.toSeconds(date2.getTime() - date1.getTime()); 
İlgili konular