.afterタイマーを待機していて、タイマーの有効期限が切れた後の日付/時刻を設定すると、タイマーイベントが即座に発生するためです。
これは、Tkinter(またはTk)がイベントループの一部としてシステムクロックをポーリングして、タイマーをいつ実行するかを判断していることを意味している可能性があります。
Windowsを使用している場合、Mark Hammondの本は、win32evtlogutilモジュールを使用してWindowsイベントログの変更に応答できると述べています。基本的には次のように機能します。
import win32evtlogutil
def onEvent(record):
# Do something with the event log record
win32evtlogutil.FeedEventLogRecords(onEvent)
ただし、イベントレコードの構造に関するドキュメントを入手する必要があります(章全体を入力する気はありません、申し訳ありません:-))。また、とにかく日付の変更がイベントログに表示されるかどうかもわかりません。
しかし、実際には、システムクロックをポーリングするだけで悪いのでしょうか。それは最も簡単なようで、私はそれがあなたをそれほど遅くすることはないと思います。
(最後に、コメント:あなたの国についてはわかりませんが、ここニュージーランドでは、夏時間調整には日付の変更は含まれていません。時間の変更のみが行われます(午前2時から午前3時、またはその逆))