5

システム時間を使用するC++プログラムをテストする必要があります。プログラムは大きく、システム時間を使用する可能性のあるサードパーティのライブラリを使用します。

私のプログラムがさまざまな日付/時間でどのように動作するかを確認したいと思います。

UNIXで実行中の1つのプロセスのシステム時刻のみを変更することはできますか?

どうもありがとう...

4

2 に答える 2

6

まあ、私は自分で答えを見つけました。

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=
于 2013-01-30T10:35:46.200 に答える
2

libfaketimeを使用できると思います。

于 2013-01-30T10:11:16.687 に答える