私は多くの SO 記事を読みましたが、問題に対する適切な答えを見つけることができないようです。投稿された提案には、日付を文字列との間で複数回変換し、最後にビットを連結する関数が含まれており、すべてが面倒なようです...
だから問題に:
世界中にサーバーがあります。すべてのサーバーは独自のローカル時間で実行され、サーバーに対してローカルな時間エントリを含むログを保持します。一部のサーバーは DST 観測エリアにあり、他のサーバーはそうではありません
ログからこれらの文字列があるとします: 2013-01-01 12:34:56, 2013-07-01 12:34:56 そして、このサーバーがニューヨークにあることを知っているので、UTC-5 または UTC-4 の場合DST が実行中です
そして、DST が適用されず、タイム ゾーンが +8 である香港のサーバーのログから同じ文字列を取得しました。
私が求めているのは、それを伝えることができるコードのブロックです:
- これは時間を表す文字列です
- 文字列のタイムゾーンは次のとおりです
- 必要に応じて夏時間も適用する必要があります
コードは文字列を解析して DateTimeOffset に変換し、解析対象の時間が DST に関連している場合は、DST に従ってオフセットが調整されます。
例: NY サーバーのログには " 2013-01-01 ..."と表示されています。DST は 1 月のこの日付には適用されないため、解析される日付は次のようになります: ニューヨーク時間で 12:34:56、別名 17:34:56 UTC (-5 であるため、DST はありません)
ニューヨークのサーバー ログには、「2013-07-01 ...」と記載されています。夏時間は 6 月のこの日付に適用されるため、解析される日付は次のようになります。ニューヨーク時間で 12:34:56、UTC で16:34:56 -4、DST あり)
HK サーバー、両方の日時が 04:34:56 UTC に解析されます
みんなありがとう