1

次のように構造化された日付と時刻が与えられます。

"2011-10-21 14:44:19"

これは太平洋時間 (必要に応じて夏時間に合わせて調整されます) であることが知られているため、現在のサーバー時間に関係なく、DateTime を解析して UTC に変換する必要があります。

元の DateTime が UTC であるという仮定から始まるこの非常によく似た質問を見てきました。

地域設定に関係なく日時をGMTにフォーマットする方法は?

それを自分の状況に適用しようとしていますが、太平洋時間 (必要に応じて PST または PDT) の文字列から始めて UTC DateTime に到達する方法がわかりません。具体的には、そのソリューションはフラグDateTimeStyles.AssumeUniversalを適用しますが、太平洋時間を想定する必要があります。

4

1 に答える 1

2

変換を行うには、TimeZoneInfo.ConvertTimeToUtc(DateTime, TimeZoneInfo) を使用する必要があります。サーバーのタイムゾーンは関係ありません。FindSystemTimeZoneById() を使用して、2 番目の引数として渡すタイムゾーンを選択します。IDには「太平洋標準時」が必要です。

この関数は、レジストリに格納され、Windows によって管理されるタイムゾーン データベースを使用します。タイムゾーンの規則は、特に夏時間への移行に伴って変化するため、Microsoft がデータベースを更新できるようにするには、そのマシンで Windows Update をアクティブにしておくことが重要です。文字列がどこから来たのかを明確に知ることは、これが正しく機能するために重要です。

于 2012-04-06T19:12:19.263 に答える