2013-05-08 10 views
5

epochから返された日数がJoda-Timeであることから、入力した日時によって変化する問題があります。 2012-05-14 22:00:002012-05-14 02:00:00と入力すると、同じ日に同じ結果が出るため、同じ結果が期待されます。以下は私のコードです。エポック以降のJoda-Time日数

 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 

誰も私が間違ってやっている任意のアイデアを持っていますか?

+0

結果は、あなたのタイムゾーンによって異なります。

は、私はそれをソート得るために次の行を追加する必要がありました。エポックの始まりは01-01-1970、00:00:00 ** GMT **です。あなたのタイムゾーンに応じて、2012-05-14 22:00と2012-05-14 02:00は、GMTに変換された時と異なる日になる可能性があります。 – Jesper

答えて

3

OK(私の目の前にあった:))...私が得た時代は、実際には1970-01-01から始まったが、その日の最初のミリ秒からではなかった。

epoch.setTime(0); 
+0

ちょうどメモ...ちょうど日付に焦点を当てる時間を無視したい一般的なケースについては、[withTimeAtStartOfDay()](http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime .html#withTimeAtStartOfDay())メソッドは、[DateTime](http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime.html)にあります。これがこの問題に該当するかどうかは不明です。私はテストしなかった。 –

関連する問題