1

Windowsで短縮されたタイムゾーン名を取得する方法を知っている人はいますか?

このコードを使用してタイムゾーン名を取得していますが、短縮されたタイムゾーンを取得していません。

time(&ltime);
newtime = localtime(&ltime);
strftime(sDate, 80,"%a, %d %b %Y %H:%M:%S %Z", newtime);

出力: 2013 年 8 月 16 日金曜日 14:45:27 インド標準時

期待される出力 2013 年 8 月 16 日金曜日 14:45:27 IST

ありがとう、

4

2 に答える 2

2

タイム ゾーンの略語には、世界共通の標準はありません。ここでリストを確認できますが、それでもリストされていないものやあいまいなものがあります。

たとえば、HASTハワイに使用する人もいれHSTば、アラスカのアリューシャン列島をあまり気にしないために使用する人もいます (これは がA表しているはずです)。

また、CST「中央標準時」(米国)、「中国標準時」、「キューバ標準時」などの値も使用できます。 EST「東部標準時」(米国)または「東部標準時」(オーストラリア)のいずれかです。

私は一日中行くことができました。ポイントは、時間帯の省略形を使用するのは、人間に時間を表示するときだけであり、場所などの他の暗黙のコンテキストがあるときだけにするべきだということです。これらのシナリオで 1 つが必要な場合は、アプリケーションにいくつかの条件付きロジックが必要になります。オフセットをタイム ゾーンまたは単一の略語に直接変換できるという誤った仮定をしないように注意する必要があります。

完全な IANA/Olson タイム ゾーンの省略形を思いつくことができるかもしれませんが、TZDB 実装が必要になります。これは、Windows の C ではネイティブではありません。詳細については、この質問と回答を参照してください。

タイム ゾーンの略語を使用するRFC822などのいくつかの仕様がありますが、それらはほんの一握りしか定義しておらず、ほとんどが米国に固定されています。それらは、より現代的なものや世界的な影響を与えるものには含まれない傾向があります.

于 2013-08-16T18:30:02.953 に答える
0

ドキュメントの状態%Zが返されます

「レジストリ設定に応じて、タイムゾーン名またはタイムゾーンの略語のいずれか。タイムゾーンが不明な場合は文字なし」

そのため、使用したいものを手に入れるのに苦労するでしょうstrftime

于 2013-08-16T11:37:41.260 に答える