システム時間を使用するC++プログラムをテストする必要があります。プログラムは大きく、システム時間を使用する可能性のあるサードパーティのライブラリを使用します。
私のプログラムがさまざまな日付/時間でどのように動作するかを確認したいと思います。
UNIXで実行中の1つのプロセスのシステム時刻のみを変更することはできますか?
どうもありがとう...
まあ、私は自分で答えを見つけました。
UNIX シェルには、タイムゾーンである環境変数 TZ があり、すべての C/C++ 時間関数で使用されます。
この変数を操作して、現在の UNIX シェルの時間を任意の時間 (ミリ秒ではなく秒数に制限) に設定したり、日付を変更したりすることもできます。
例:
export TZ=A-02:10:20
(現在より2時間10分20秒ずらします)。
export TZ=A+02:10:20
(後方への同じシフト)
日付を変更する場合は、次のように多数の時間を使用できます。
export TZ=A-72:10:20
残念ながら、日付をあまり変更することはできません。私の実験では、最大で数日前後します。そのため、月/年を変更する場合、これは機能しません。
(TZ 変数を設定した後、'date' コマンドを使用して現在の日付/時刻を確認します)。
すべての変更をキャンセルするには
export TZ=
libfaketimeを使用できると思います。