2013-05-08 21 views
5

Joda-Time kitaplığı tarafından döndürülen epoch kitaplığından bu yana geçen gün sayısının, girdiğim tarihin saatine bağlı olarak değiştiği bir sorunum var. 2012-05-14 22:00:00 ve 2012-05-14 02:00:00 numaralarına girersem aynı sonucu beklerim çünkü ikisi de aynı günde. Aşağıdaki kodum.Joda-Time Epoch'tan bu yana geçen gün sayısı

 try { 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
     Date date1 = sdf.parse("2013-05-03 07:00:00"); 
     Date date2 = sdf.parse("2013-05-03 23:30:00"); 


     MutableDateTime epoch = new MutableDateTime(); 
     epoch.setDate(0); //Set to Epoch time 
     System.out.println("Epoch: " + epoch); 
     Days days1 = Days.daysBetween(epoch, new MutableDateTime(date1.getTime())); 
     Days days2 = Days.daysBetween(epoch, new MutableDateTime(date2.getTime())); 
     System.out.println("1) Days Since Epoch: " + days1.getDays()); 
     System.out.println("2) Days Since Epoch: " + days2.getDays()); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

Epoch: 1970-01-01T11:09:00.414+01:00 
1) Days Since Epoch: 15827 
2) Days Since Epoch: 15828 

kimse ben yanlış yapıyorum bir fikrin var mı ?

+0

sonuçları saat dilimine bağlıdır:

Ben o tür almak için aşağıdaki satırı eklemek gerekiyordu. Çağın başlangıcının 01-01-1970, 00:00:00 ** GMT ** olduğunu unutmayın. Saat diliminize bağlı olarak, 2012-05-14 22:00 ve 2012-05-14 02:00 GMT'ye dönüştürüldüğünde farklı günlerde olabilir. – Jesper

cevap

3

Tamam, problemi (kendi gözlerimin önündeydi :)) bulduğum dönem, 1970-01-01'den başlayarak, o günün ilk ms'lerinden değil.

epoch.setTime(0); 
+0

Sadece bir not… Sadece tarihte odaklanmak için zamanı görmezden gelmek isteyen genel durum için, [withTimeAtStartOfDay()] sayfasını arayın (http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime [DateTime] (http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime.html) adresinde .html # withTimeAtStartOfDay()) yöntemi. Bunun bu sorun için geçerli olup olmadığından emin değilsiniz; Ben test etmedim. –

İlgili konular