2013-11-28 1 views
1

Я пытаюсь сделать обратный отсчет Рождества в java, но я не могу понять, почему часы отключены. Это выводит около 12 часов от фактического времени.Christmas Countdown Off

Вот мой код:

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

В GMT ваше жестко закодированное Рождество - это правильно. System.currentTimeMillis(), вероятно, не работает в GMT (по вашему вопросу вы + 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));