問題タブ [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.
c++ - Win32 API を使用した ISO 8601 との FILETIME。DST を正しく取得していますか?
.NET で何かを書きました。それはうまくいきます。現在、Win32 API を使用してシェル拡張として書き直そうとしています。FILETIME
最終的に、 s を ISO-8601 文字列との間で変換したいと考えています。GetTimeZoneInformation
これは、 andFileTimeToSystemTime
およびSystemTimeToTzSpecificLocalTime
andを使用してand構造体StringCchPrintf
のメンバーを文字列にアセンブルすることで、大騒ぎせずに実行できます。SYSTEMTIME
TIME_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 年間ではなく、現地時間で一瞬ですか?