правильно я реализовал или нет? Если не правильно, где я ошибся
Не правильно. Потому что не надо каждую секунду дергать. Система это не любит. Ну и через work manager можете задать время, когда будет вызываться метод.
А так же из datetime можно нормально получить текущий час, а не через строку