問題タブ [filetime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
244 参照

c++ - Win32 API を使用した ISO 8601 との FILETIME。DST を正しく取得していますか?

.NET で何かを書きました。それはうまくいきます。現在、Win32 API を使用してシェル拡張として書き直そうとしています。FILETIME最終的に、 s を ISO-8601 文字列との間で変換したいと考えています。GetTimeZoneInformationこれは、 andFileTimeToSystemTimeおよびSystemTimeToTzSpecificLocalTimeandを使用してand構造体StringCchPrintfのメンバーを文字列にアセンブルすることで、大騒ぎせずに実行できます。SYSTEMTIMETIME_ZONE_INFORMATION

日付/時刻を扱うときの問題は、夏時間です。を使用すると、現在GetTimeZoneInformation有効な UTC オフセットがわかります。.NET を使用すると、 DateTime で表される時刻の夏時間が考慮されます。DateTime.ToString("o")

同じ例FILETIME:
出力ToString("o"): 2017-06-21T12:00:00.0000000-05:00
連鎖 API の出力: 2017-06-21T12:00:00-06:00

チェーンされた API 呼び出しからの UTC オフセットが正しくありません。.NET はどのように行うのDateTimeですか? Win32 でそれをどのように複製するのでしょうか? のようなものはありますがGetTimeZoneInformationForYear、1 年間ではなく、現地時間で一瞬ですか?