1

EclipseからWebアプリケーションを実行しています。このWebアプリケーションでは、現在の日付と時刻を1992年11月24日に設定したいと思います。グリニッジ標準時00:00 この後、アプリケーションで時刻を自動インクリメントし、日付、月、年を追跡する必要があります。Java / JSPでこれを行う方法はありますか?

4

1 に答える 1

3

「実際の現在の時刻」と「過去の現在の時刻」の差を保存し、過去の時刻を確認するたびに減算を実行する必要があります。

final class Past {
  private final long differenceMs;
  public Past(final Date pastDate) {
    this.differenceMs = (System.currentTimeMillis() - pastDate.getTime());
  }
  public Date getUpdatedPastDate() {
    return new Date(System.currentTimeMillis() - differenceMs);
  }
}

class Test {
  public static void main(String[] args) throws Throwable {
    final Calendar cal = Calendar.getInstance();
    cal.set(1992, 10, 24, 0, 0, 0); // this is 24/11/1992
    final Past past = new Past(cal.getTime());
    System.out.println(past.getUpdatedPastDate());
    Thread.sleep(2000);
    System.out.println(past.getUpdatedPastDate());
  }
}

2つはとのようprintlnなものを印刷します(ロケールによって異なります)。Tue Nov 24 00:00:00 BRST 1992Tue Nov 24 00:00:02 BRST 1992

「自動インクリメント」する必要はなく、マルチスレッドもありません。クラスは不変であり(したがって、本質的にスレッドセーフです)、非常にクリーンです。

于 2012-10-03T05:32:15.637 に答える