1

次のスニペットを検討してください

    System.out.println(System.currentTimeMillis());

    Calendar calendarInstance = Calendar.getInstance();
    System.out.println(calendarInstance.getTimeInMillis());

    // Get current
    int year = calendarInstance.get(Calendar.YEAR);
    int month = 1 + calendarInstance.get(Calendar.MONTH);

    calendarInstance.set(year, month, 7 , 19, 00);

    System.out.println(calendarInstance.getTimeInMillis());

最初の 2 枚のプリントは「かなり今」です。3枚目は昨日の19時。3 番目の数が最も大きいのはなぜですか?

  1. 1,352,389,069,723
  2. 1,352,389,069,734
  3. 1,354,669,249,734

私が間違っている場合は訂正してください。

calendarInstance.set(year, month, 7 , 19, 00);

を扱ってい2012, 11, the 7th day, 7 pmます。

私は何が欠けていますか?

4

1 に答える 1

3

現在までに 1 か月が追加されました。だから未来です。

int month = 1 + calendarInstance.get(Calendar.MONTH);

これは紛らわしいかもしれませんが、Java では月が 0-index であるため、1 を追加すると思います。不運にも。

于 2012-11-08T16:02:39.370 に答える