Windows Mobile 6.5アプリケーションのタイムゾーンをC#4.0でUTCに変換する必要がありますか?タイムゾーンをUTCに変更することは可能ですか?
1 に答える
あなたは私を混乱させています。Windows Mobile 6.5(別名Windows Embeddedハンドヘルド)およびC#4.0 ??????
Windows Mobile 6.5は、CompactFramework3.5を使用してプログラムできます。C#4.0バージョンはありません。C#4.0フレームワークを使用してプログラムできるWindows Phone(> = 7.x)があります。後者はVisualStudio2010で行われます。WindowsMobile6.5はVisualStudio2008(ネイティブモバイルをサポートする最新のVS)でプログラムする必要があります。
OK、時間を扱うときは、デバイスに知られているさまざまな「時間」があることを知っておく必要があります。メインの「時刻」であるシステム時刻は、常にUTCです。たとえば、ファイル時間は常にUTCで保存されます。そうしないと、タイムゾーンの切り替えをすべてのファイルに保存する必要があります。次に、別の「時間」、つまり現地時間があります。たとえば、DateTime.Now()は、現地時間、タイムゾーンとDSTが適用された時間を示します。
デバイスのUTC時刻を取得/設定したり、現地時間を取得/設定したり、ファイル時刻を取得/設定したりするAPI関数があります。
SetTimeZone / GetTimeZoneで遊んでいると、DSTに関連して大きな問題が見つかりました。ここhttp://www.hjgode.de/wp/2010/10/08/windows-mobile-setsystemtime-and-dst-einsteins-relativity-theory/を参照してください。この投稿には、CompactFrameworkからWindowsMobileの時間関数にアクセスするためのP/Invokesも含まれています。
TimeZoneをUTCに変換するとはどういう意味ですか?現地時間のUTCを知る必要がある場合は、TimeZone情報を読み取り、タイムゾーンオフセット値を現地時間に追加/削除してUTC時間を取得する必要があります。
〜Josef