1

私はjavaDateライブラリを探していました1.java.util.Date、2。Date4J 3. Joda-time

ミリ秒の精度で、2つの日付オブジェクトに対して時間の減算を実行できるかどうかを確認します。

2011-05-29T22:50:12.692を文字列として受け取り、SimpleDateFormatで解析してDateオブジェクトに変換します。

他のDateオブジェクトも文字列を受け取ります。そして、2つのDateオブジェクトから減算したいと思います。

何か案は?

基本的に、2つのDateオブジェクト間の間隔をミリ秒の精度で取得したいと思います。

4

7 に答える 7

9

Date.getTime()を使用してみてください

long timeBetweenInMillis = d2.getTime() - d1.getTime();

編集

d2これは、が時系列で後で あることを前提としていd1ます。

于 2011-05-27T14:56:30.123 に答える
2

java.util.Dateには、Date.getTime()ミリエスの時間を取得するために使用できるというメソッドがあります。

于 2011-05-27T14:57:36.230 に答える
1

こういう意味ですか?

Date d1 = 
Date d2 =
long intervalInMillis = d1.getTime() - d2.getTime();
于 2011-05-27T14:57:15.730 に答える
1

Date()オブジェクトの内部表現は、エポックを過ぎたミリ秒数です。getTime()メソッドを使用してこれらの値を取得し、それらに対して算術演算を実行するだけです。次に、その値に基づいて新しいDateオブジェクトを作成できます。これで完了です。

于 2011-05-27T14:57:29.107 に答える
1

ミリ秒の差を取得するだけです。

long millis = date1.getTime() - date2.getTime();
于 2011-05-27T14:57:37.913 に答える
0

SimpleDateFormatの代わりにXMLGregorianCalendarを利用できます(SimpleDateFormatはスレッドセーフではないことに注意してください:http: //www.codefutures.com/weblog/andygrove/2007/10/simpledateformat-and-thread-safety.html):

import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

public class Demo {

    public static void main(String[] args) throws Exception {
        DatatypeFactory df = DatatypeFactory.newInstance();
        XMLGregorianCalendar date2 = df.newXMLGregorianCalendar("2011-05-29T22:50:12.692");
        XMLGregorianCalendar date1 = df.newXMLGregorianCalendar("2011-03-29T22:50:12.692");

        System.out.println(date2.toGregorianCalendar().getTimeInMillis() - date1.toGregorianCalendar().getTimeInMillis());
    }

}
于 2011-05-27T15:33:57.337 に答える
0

これはあなたが望むものです:

Date result = new Date(d2.getTime() - d1.getTime());

説明:

d2.getTime() - d1.getTime() 

日付間のミリ秒の差を返します

new Date(milliseconds);

エポックからのミリ秒数に設定された新しいDateオブジェクトを作成します。

編集

正の差だけが必要な場合は、これに変更してください。このように、入力の順序は関係ありません。

Date result = new Date(Math.abs(d2.getTime() - d1.getTime()));
于 2011-05-27T18:46:20.067 に答える