2012-10-03 30 views
1

我在eclipse上運行一個web應用程序。在這個Web應用程序中,我想將當前日期和時間設置爲24/11/1992。 00:00格林尼治標準時間。在此之後,我希望應用程序自動增加時間並記錄日期,月份和年份。有什麼辦法可以在Java/JSP中做到這一點?在Java中維護一個單獨的應用程序時間?

+0

你想讓24/11/1992。 00:00格林尼治標準時間的時間應用範圍? – PermGenError

+0

醜陋的方法是在應用程序啓動時記住系統時間與24.11.92之間的差異。然後在每次訪問時從系統時間中減去它。 –

+0

@defaultlocale,你會澄清這怎麼可能是醜陋的?在我看來,它是最乾淨和最優雅的解決方案。看下面的例子。 –

回答

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()); 
    } 
} 

兩個println應打印像Tue Nov 24 00:00:00 BRST 1992Tue Nov 24 00:00:02 BRST 1992(取決於您的區域設置)。

沒有必要「自動遞增」,沒有多線程,類是不可變的(因此本質上是線程安全的)並且非常非常乾淨。

+0

非常感謝。該解決方案完美運作 –

相關問題