工作と競馬2

電子工作、プログラミング、木工といった工作の記録記事、競馬に関する考察記事を掲載するブログ

Pythonの時刻周りの処理 システム時刻の変更による影響のメモ

概要

Pythonで、時刻周りの処理を行っている最中に、システム時刻の変更があるとどんな挙動になるのか気になったので調べてメモしておく。


0. 環境

  • Linux搭載組み込み機器
  • Python3.5(事情により古いがまあ、どれも変わらないだろう)


時刻同期

time.sleep

影響を受けない。

sleep中に時刻を変更しても、指定した長さ分sleepされることを確認した。

time.time

影響を受ける。

変更後、即座に値が変わるので、time.timeの差分を取って時間計測等をすると、明らかにおかしくなる。


threading.Timer

影響を受ける。

時刻を未来側に変更した時は、変更分だけ待ち時間が縮まる。変更後の時刻が発動予定時刻を超過していれば、待ち状態が即座に終わって発動する。 時刻を過去側に変更した時は、その逆。


time.monotonic

影響を受けない。

時刻変更をしても、一定の速度で値が増加することを確認した。ドキュメントにもそう書いてあるので間違いない。


datetime.timedelta

影響を受けない。 時刻そのものではないので当然だが。