2013-11-28 55 views
1

我想在java中做一個聖誕節倒計時,但我似乎無法弄清楚爲什麼時間沒有了。這是從實際時間輸出大約12個小時。聖誕節倒數關

這裏是我的代碼:

long now = System.currentTimeMillis(); 
long christmas = 1387929600000L; 
long untilChristmas = christmas - now; 

DateFormat df = new SimpleDateFormat("dd-kk-mm-ss"); 
Date date = new Date(untilChristmas); 

System.out.println(df.format(date)); 
+2

而只是* *爲什麼你硬編碼聖誕? – Sinkingpoint

+0

在格林威治時間您的硬編聖誕節時間是正確的。 System.currentTimeMillis()可能不在格林威治標準時間(根據你的問題+12小時) – Sinkingpoint

回答

1

你不應該硬編碼的日期,你應該使用Calendar來計算的話:

long now = System.currentTimeMillis(); 
    Calendar christmas = Calendar.getInstance(); 
    christmas.set(Calendar.MONTH, Calendar.DECEMBER); 
    christmas.set(Calendar.DAY_OF_MONTH, 25); 
    long untilChristmas = christmas.getTimeInMillis() - now; 

    DateFormat df = new SimpleDateFormat("dd-kk-mm-ss"); 
    Date date = new Date(untilChristmas); 

    System.out.println(df.format(date));