2013-04-04 109 views
33

我知道這不是「它應該工作的方式」,但仍然是:如果您有兩個DateTime對象,那麼減去它們的好方法是什麼?將它們轉換爲Date對象?如何減去兩個約達日期?

DateTime start = new DateTime(); 
System.out.println(start + " - doing some stuff"); 

// do stuff 

DateTime end = new DateTime(); 
Period diff = // end - start ??? 
System.out.println(end + " - doing some stuff took diff seconds"); 
+1

[這](http://stackoverflow.com/questions/3802893/天數之間的日期在jodatime#)應該幫助你。 – karmanaut 2013-04-04 15:08:04

+0

@karmanaut - 謝謝,結束爲dup。 – ripper234 2013-04-04 15:09:53

+2

@karmanaut這個問題並沒有真正涵蓋相同的理由。它計算兩個時刻之間*天*的數量,而不是從開始和結束日期到一個時期的一般方法。 – millimoose 2013-04-04 15:11:06

回答

0

我想你可以創建一個使用Periodthis構造這需要兩個DateTime對象。

2

取決於你想得到的精度。您應該檢查org.joda.time包裹並檢查助手類別,例如Hours,Days等。

3

這是否對您有幫助? http://joda-time.sourceforge.net/key_period.html 它顯示你的例子下面的例子

DateTime start = new DateTime(2004, 12, 25, 0, 0, 0, 0); 
DateTime end = new DateTime(2006, 1, 1, 0, 0, 0, 0); 

// period of 1 year and 7 days 
Period period = new Period(start, end); 

// calc will equal end 
DateTime calc = start.plus(period); 

// able to calculate whole days between two dates easily 
Days days = Days.daysBetween(start, end); 
16

你似乎想這樣this should help在幾秒鐘的差別:

Seconds diff = Seconds.secondsBetween(start, end);