3

2011年など、特定の年の毎日の1時間ごとにコマンドラインで取得/印刷する必要がありますが、Javaでコーディングするのに苦労しています。

誰かがこの問題をコーディングしたことがありますか?

4

3 に答える 3

7

これはうまくいくはずです:

final DateFormat df = DateFormat.getDateTimeInstance();
final Calendar c = Calendar.getInstance();
c.clear();
for (c.set(2011, Calendar.JANUARY, 1, 0, 0, 0);
     c.get(Calendar.YEAR) == 2011;
     c.add(Calendar.HOUR_OF_DAY, 1))
  System.out.println(df.format(c.getTime()));

たとえば、出力の微妙な点に注意してください。

Oct 30, 2011 12:00:00 AM
Oct 30, 2011 1:00:00 AM
Oct 30, 2011 2:00:00 AM
Oct 30, 2011 2:00:00 AM
Oct 30, 2011 3:00:00 AM
于 2012-08-21T09:54:04.533 に答える
1

joda-timeライブラリを使用すると、これを簡単に解決できます。

    org.joda.time.Hours.hoursBetween(
        new org.joda.time.DateMidnight(2012,1,1).toLocalDate(), 
        new org.joda.time.DateMidnight(2013,1,1).toLocalDate()
      ).getHours();
于 2012-08-21T10:37:56.153 に答える
0

カレンダーを使用し、必要なパラメーターで好きなように「引用符で囲まれた文字列」を管理するために毎日ループします。

各行の日付 (通常はコンマで区切ります) をファイルに入れることができます

于 2012-08-21T09:53:12.113 に答える