-2

私は日付を扱う必要がありますが、Java でそれを行う方法がわかりませんでした。これまでやったことがないからです。

Excel ファイルから日付を取得していますが、日付を表すデータ形式で取得できます。

元:

  1. 2010/2/1
  2. 2011 年 5 月 12 日
  3. 2011 年 8 月 15 日
  4. 2011 年 9 月 1 日
  5. 2011 年 9 月 1 日

私のコードはすべて質問とは無関係ですが、ゲッター/セッターメソッドを設定しています:

public Date getDate() {
    return date;
}

public void setDate(Date date) {
    this.date = date;
}

だから私の質問はこれです.Excelからデータを取得するときの方法は次のとおりです。

    temp.setDate((row.getCell(3).getDateCellValue());

x か月のデータのみを取得するように制限を設定できます。2010年までさかのぼるのではなく、ファイルに表示されている最後の月/年から8、12、など? 必要に応じて詳細を提供できます。

編集:これは私が今持っているものです:

   import java.util.Date;
    Date date;
   date = row.getCell(3).getDateCellValue();

6 月 1 日火曜日 00:00:00

火曜日や 00:00:00 は気にしません。データのリスト全体があり、x か月分だけを表示したいだけです。

編集:私はそれを理解しました。:)

4

3 に答える 3

0

質問はかなり漠然としていますが、Excel を使用している場合は、ファイルを「filename.csv」として保存すると非常に有益であることがわかりました。この形式は操作が非常に簡単で、コンマで区切られ、改行が行われます。月を定期的にチェックしている場合は、x か月だけさかのぼることを簡単に確認できます。

于 2012-07-17T14:27:56.313 に答える
0

セルを解析するために DateFormat.class を操作するか、カレンダーを使用して日月年を入力する必要があります

編集

Calendar.classを使用することもできます

final String[] tabDate = {"2/1/2010", "5/12/2011", "8/15/2011",
                           "9/1/2011", "9/1/2011"};
// Extract field's value
final Calendar c = Calendar.getInstance();

// Parse the list of stringDate
for (final String string : tabDate) {
    System.out.println("Input string: " + string);
    final String[] shortDate = string.split("/");

   // Build Calendar
    c.set(Integer.valueOf(shortDate[2]), Integer.valueOf(shortDate[0]),
        Integer.valueOf(shortDate[1]));

    // Extract date as you like
    System.out.format("%25s  : %d/%d/%d\t%s\n\n", c.getTime(),
        c.get(Calendar.MONTH), c.get(Calendar.DATE),
        c.get(Calendar.YEAR), c.getTimeInMillis());
}

コンソール :

Input string: 2/1/2010
Mon Mar 01 09:09:48 CET 2010  : 2/1/2010    1267430988109

Input string: 5/12/2011
Sun Jun 12 09:09:48 CEST 2011  : 5/12/2011  1307862588109

Input string: 8/15/2011
Thu Sep 15 09:09:48 CEST 2011  : 8/15/2011  1316070588109

Input string: 9/1/2011
Sat Oct 01 09:09:48 CEST 2011  : 9/1/2011   1317452988109

Input string: 9/1/2011
Sat Oct 01 09:09:48 CEST 2011  : 9/1/2011   1317452988109
于 2012-07-17T14:22:42.040 に答える
0

最初に、SimpleDateFormat クラスを使用して、それに応じて日付を解析する必要があります。結果は日付オブジェクトです。

SimpleDateFormat df = new SimpleDateFormat( "M/d/yyyy" );
Date date = df.parse(row.getCell(3).getDateCellValue());

それで:

Calendar cal = Calendar.getInstance();

オブジェクトobタイプのCalendarを返します。ここで、日付を設定できます

cal.setTime(date);

最後に、Excel ファイルを読み取るループは、カレンダー オブジェクトに従って、日付を含める必要があるか、次を使用してさらに処理する必要があるかを判断できます。

int month = cal.get(Calendar.MONTH); // e.g. 11 for Nov
int year = cal.get(Calendar.YEAR); // e.g. 2011
于 2012-07-17T14:36:32.943 に答える