1

Linux(Redhat)で特定のUTCオフセットに対して夏時間が有効になっているかどうかを判断する必要があります。UTC + 05:30などの入力があります。zdumpコマンドの使い方を確認しました。タイムゾーン名とともに使用すると、出力のisdstの値を確認して、夏時間のステータスを判断できます。

zdump -v / usr / share / zoneinfo / Asia / Kolkata | grep 2013

上記のように、zdumpにはゾーン名が必要です。UTCオフセットを受け入れません。

以下のように現地時間機能も試してみました。

time_t currtime;
struct tm * timeinfo;
timeinfo = localtime ( &currtime );
time_t local = mktime( timeinfo );
cout<<timeinfo->tm_isdst<<endl;

上記のコードは、日時設定でタイムゾーン名が設定されている場合に機能します。システムがUTC時間を使用している場合は機能しません。UTC時刻を使用する場合、localtimeの代わりにgmtimeを使用しました。

UTCオフセットを使用してdstが有効になっているかどうかを判断する方法があるかどうかを教えてください。

4

2 に答える 2

6

これは一般的に不可能です。UTC + 05:30は多くの国で使用される可能性があり、それぞれが異なる夏時間ポリシーを採用しています。

于 2013-02-06T16:52:32.600 に答える
2

一部の管轄区域ではDSTを使用していないため、UTCオフセットではDSTが有効かどうかを判断するのに十分ではありません。さらに、それがいつ発効するかについて異なるスケジュールを持っているもの(例えば、南半球の場所と北半球の場所)。必要なのは、DSTを使用するタイムゾーン名と、それぞれのDSTの開始時刻と停止時刻を含む最新のテーブルです。

于 2013-02-06T16:53:09.017 に答える