2015-09-05 1 views
-1

В Spigot Я создаю ежедневный плагин вознаграждений, где мне нужно будет хранить количество дней, в которые пользователи вошли в систему подряд, но главная проблема - System.getCurrentTimeMillis(). Я хочу создать время сервера, которое показывает часы и минуты. Когда он достигает установленного времени, такого как 1AM или 5AM, или, если игрок присоединяется, они вошли в систему на следующий день (а также, если они находятся в сети). Еще одна вещь, которую я добавляю, заключается в том, что если пользователь остается в сети в течение установленного времени, например, через полчаса, он получает вознаграждение, если они остаются в сети примерно на 1 час большей награды, и это постепенно увеличивается. Перезапускается ли System.getCurrentTimeMillis() каждый раз, когда сервер перезагружается? Как мне это сделать?System.getCurrentTimeMillis()

+1

Вот Javadoc. Он объясняет, что делает System.currentTimeMillis(). Все другие классы и методы JDK также документированы. https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#currentTimeMillis%28%29 –

ответ

3

Как javadoc System.currentTimeMillis() говорит, что он возвращает разность, измеренную в миллисекундах, между текущим временем и полночью, 1 января 1970 г. UTC.

Таким образом, ответ: он не перезапускается при каждом перезапуске сервера.

1

System.currentTimeMillis() просто даст вам текущее системное время в любой момент. Я полагаю, что ваш случай использования - это измерение продолжительности входа для каждого пользователя. Я хотел бы сохранить это в каждом объекте сеанса пользователя.

+0

Да, именно поэтому я упомянул о частичной награды, а также части причитающихся вознаграждений. – rockinroll99

1

Вы, вероятно, хотите использовать GregorianCalendar, который позволяет декодировать дату:

Calendar calendar = new GregorianCalendar(); // arguments allow to set time zone 

// one of them: 
calendar.setTime(new Date()); 
calendar.setTimeInMillis(System.currentTimeMillis()); 

System.out.println("MONTH: " + calendar.get(Calendar.MONTH)); 
System.out.println("HOUR: " + calendar.get(Calendar.HOUR)); 
+0

Спасибо! Это очень информативно, я обязательно попробую. – rockinroll99