0

日付の配列を比較するために joda time を使用しています。私の目標は、配列を調べて、欠落している日付を確認することです。DateTime配列の最初の変数を変数に代入し、配列と日時をカウントアップすることで、これを達成する予定です。DateTimeが に等しい場合、と 配列のarray[x]両方が1 ずつ増加します。が配列と等しくないDateTime場合(日付が欠落していることを意味します)、は 1 ずつ増加し、等しいまで日付を出力します。ただし、現時点では、最初の日付 (ホルダー[2]) が の値になるように取得しようとしています。DateTimeDateTimeDateTimeArray[x]DateTime firstDate

holder[2]私の質問は、に割り当てることができるようにするにはどうすればよいDateTime firstDateですか? 単に代入firstDateするholder[2]とエラーが返されます。

DateTime firstDate = new DateTime();
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyyMMDD");
String date = dtf.print(firstDate);

String fake;

while ((fake = reader.readLine()) != null) {
    String [] holder = fake.split(" ");

    firstDate = holder[2]; //******the issue******
    System.out.println(firstdate);

}

私のコードに関する重要事項:

  1. 非常に大きなファイル (20 GB) から情報を取得するために を使用しているBufferedReaderため、テキスト ファイルから行ごとに読み込んでいます (各行holder[2]は日付です)。

  2. テキスト ファイルの日付の形式は yyyymmdd であり、その文字列を の文字列と比較したい(したがって、最初に行う必要があるのは、たまたま私の質問でDateTimeある配列の最初の値を割り当てることです)。DateTime)。

  3. Joda Time を正しく設定しました

4

1 に答える 1

1

あなたが持っているものがholder[2]「yyyyMMDD」形式の日付の文字列表現である場合、定義したフォーマッタを使用する必要があります。

firstDate = dtf.parseDateTime(holder[2]);
于 2013-06-21T14:44:57.323 に答える