Linux カーネルが提供するものtime_to_tm()
(こちらを参照):
/**
* time_to_tm - converts the calendar time to local broken-down time
*
* @totalsecs the number of seconds elapsed since 00:00:00 on January 1, 1970,
* Coordinated Universal Time (UTC).
* @offset offset seconds adding to totalsecs.
* @result pointer to struct tm variable to receive broken-down time
*/
void time_to_tm(time_t totalsecs, int offset, struct tm *result)
説明によると、tm
現地の故障時間になります。tm
したがって、ローカル タイム ゾーンと DST が尊重されることを理解しています。これが正しければ、コードには表示されません。
offset
ローカル タイム ゾーンと DST を「提供」するために引数を使用する必要があるのではないでしょうか。
アップデート
この質問に従って、 sys_tzと組み合わせて使用すると、 time_to_tm()
「真の」現地時間を取得できますか? 私の知る限り、現地時間表記はユーザーランドに属します。たとえば、DST はタイム ゾーンごとに特別にコンパイルされた構成ファイルで定義されます。
よくわかりません。sys_tz
in kernel thanの意味は何ですか?