В Spigot Я создаю ежедневный плагин вознаграждений, где мне нужно будет хранить количество дней, в которые пользователи вошли в систему подряд, но главная проблема - System.getCurrentTimeMillis(). Я хочу создать время сервера, которое показывает часы и минуты. Когда он достигает установленного времени, такого как 1AM или 5AM, или, если игрок присоединяется, они вошли в систему на следующий день (а также, если они находятся в сети). Еще одна вещь, которую я добавляю, заключается в том, что если пользователь остается в сети в течение установленного времени, например, через полчаса, он получает вознаграждение, если они остаются в сети примерно на 1 час большей награды, и это постепенно увеличивается. Перезапускается ли System.getCurrentTimeMillis() каждый раз, когда сервер перезагружается? Как мне это сделать?System.getCurrentTimeMillis()
ответ
Как javadoc System.currentTimeMillis() говорит, что он возвращает разность, измеренную в миллисекундах, между текущим временем и полночью, 1 января 1970 г. UTC.
Таким образом, ответ: он не перезапускается при каждом перезапуске сервера.
System.currentTimeMillis() просто даст вам текущее системное время в любой момент. Я полагаю, что ваш случай использования - это измерение продолжительности входа для каждого пользователя. Я хотел бы сохранить это в каждом объекте сеанса пользователя.
Да, именно поэтому я упомянул о частичной награды, а также части причитающихся вознаграждений. – rockinroll99
Вы, вероятно, хотите использовать 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));
Спасибо! Это очень информативно, я обязательно попробую. – rockinroll99
- 1. date.getTime() короче System.getCurrentTimeMillis()
- 2. Базовая безопасность REST API, основанная на времени
- 3. Различные способы обработки синхронизации в Android
- 4. точное время события в linux/java
- 5. Java Как получить время, когда таймер остановлен?
- 6. Весенняя партия. Уже имеется задание на работу
- 7. Javassist - CannotCompileException: Нет такого класса: System.out
- 8. DateFormat или Calender.getInstance иногда возвращает случайные значения
Вот Javadoc. Он объясняет, что делает System.currentTimeMillis(). Все другие классы и методы JDK также документированы. https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#currentTimeMillis%28%29 –