0

localtime() gettimeofday()現在、などの関数の助けを借りて現在の日時を受け取ることができますtime.h

ユーザーが Linux の日付と時刻の設定を変更して、日付を以前の日付に変更したとします。上記の関数を呼び出すと、これらの変更が取得されます。

システムの日付と時刻の設定を変更するユーザーに関係なく、現在の時刻、つまり今日の時刻を取得したいと思います。

同じことを達成する方法はありますか?

4

3 に答える 3

8

お使いのコンピュータに関する限り、システム時刻現在の時刻です。

使用しているシステムが正確な時刻を提供することを信頼できない場合は、プログラムにNTP クライアントを埋め込むことを検討することをお勧めします。

于 2013-03-27T11:31:25.090 に答える
2

適切な権限を持つユーザーがシステム時刻を変更すると、システムは新しい値を認識します。

したがって、正確な時間について他人の意見を得る唯一の方法は、システムの外に出ることです。たとえば、NTP プロトコルを介してタイム サーバーに接続できます。

安価で楽しいソリューションとして、 http://www.whattimeisit.com/などの Web ページを取得できます。もちろん、これは (せいぜい) ダウンロードの待ち時間によって不正確になります。これは、NTP クライアントが巧妙に対処することの 1 つです。

あなたが望むのが「正しい」時間ではなく、使用中にジャンプしない時間だけである場合はclock_gettime、具体的に調べることができますCLOCK_MONOTONIC.

于 2013-03-27T11:35:38.917 に答える
0

システム時刻と同期していない場合は、ハードウェア クロックの読み取りを調べることができます。hwclock のマニュアル ページを参照してください。

そのページのメモ セクションには、同期を確認する方法に関する情報も含まれています。

于 2013-03-27T11:37:37.337 に答える