У меня возникла проблема с планировщиком Java. Я использую TimerTask
, когда я планирую задачу в определенное время и изменяю время работы ОС, поток TimerTask
не получает обновление смены времени. Таким образом, запланированное задание не выполняется в указанное время. Я столкнулся с этой проблемой, когда я работал над летней экономией.Как получить уведомление при изменении времени ОС
1
A
ответ
0
Общая проблема, вероятно, в том, что миллиметр Date
с 1970 года UTC является независимым от дневного времени.
Чтобы получить информацию о текущем времени - см этот ответ: How to tackle daylight savings using Timezone in java
Как осуществить? Напишите наблюдателя в отдельном потоке, который проверяет время каждые несколько секунд или добавляет такую задачу в cron (Quartz?). Проверьте смещение часовой пояс между каждым вызовом. Если они меняются, используйте событие для повторной инициализации своего приложения, однако это необходимо.
Смежные вопросы
- 1. Как получить уведомление при изменении геометрии объекта?
- 2. Как получить уведомление при изменении свойства массива?
- 3. Как получить уведомление при изменении высоты строки состояния?
- 4. Уведомление при изменении файла?
- 5. Как получить уведомление при изменении местоположения окна в Linux?
- 6. Как получить уведомление при изменении формата региона в настройках
- 7. уведомление о изменении даты и времени
- 8. Отсутствует уведомление при изменении объекта
- 9. Уведомление Windows об изменении настройки периодического времени
- 10. GameKit Уведомление при изменении пользователем
- 11. Как я могу получить уведомление/событие при изменении mediaStreamTrack.enabled?
- 12. Как получить уведомление по ubuntu при изменении каталога машин вдов?
- 13. Как получить уведомление при изменении рамки в абсолютных координатах?
- 14. Как получить уведомление при изменении поворота моего элемента управления
- 15. Как получить уведомление при изменении уровня масштабирования MKMapKit?
- 16. Как получить уведомление при изменении свободного пространства на диске?
- 17. Как получить уведомление при изменении высоты DIV с помощью Knockout.js
- 18. Как получить уведомление об изменении состояния CheckBoxPreference?
- 19. Как получить уведомление об изменении if_index
- 20. Как получить уведомление об изменении объекта ObservableCollection
- 21. Как получить уведомление о изменении статуса сети?
- 22. Как отменить уведомление при изменении RingerMode
- 23. Как изменить уведомление об изменении свойства при изменении подзадачи?
- 24. Обнаружение при изменении языка ОС - Java
- 25. Уведомление об изменении контента
- 26. Отправить уведомление при изменении свойства Использование KVO
- 27. Уведомление Android при изменении данных веб-службы
- 28. Есть ли способ получить уведомление при изменении переменной сеанса?
- 29. NSNotification при изменении времени устройства (минуты)?
- 30. Как получить ошибку времени компиляции при изменении схемы базы данных?
Что значит «изменить время»? –
, когда происходит изменение дня. Время будет сброшено на 1 час назад или вперед. Когда это изменение произойдет, поток получит уведомление. – Madhusudhan
, когда происходит изменение дня. Время будет сброшено на 1 час назад или вперед. Когда это изменение произойдет, поток получит уведомление. Допустим, что в 10 утра поток пойдет ждать, и я заставил его выполнить задачу в 11 утра, но между 10 утрами и 11 утрами время возвращается назад на 1 час. Если сброс времени произойдет с 10:30 до 9:30, то моя задача, которую я намеревался выполнить в 11:00, будет выполняться в 10 утра только потому, что я заставил ее ждать 1 час. Мой вопрос заключается в том, будет ли поток получать уведомление об изменении времени и выполнить только с 11AM или поток будет выполняться с 10 утра. – Madhusudhan