私は、MySQLのdatetimeフィールドにデータを格納し、私は( someDate.ToUniversalTime()を使用して)は、C#から常に存在UTCの日付を保存しました。UTCの日時変換
私は中央ヨーロッパのタイムゾーンにいます。
08.03.2016に2016-04-07 16:00:00として保存された日付が1つあります(この時点でイベントが設定されています)。このイベントの現地時間は2016-04-07 17:00:00となっており、その時点でGMT + 1として保存されていました。正しいローカルタイムを取得するためにsomeDate.ToLocalTime()を使用し、うまくいきました。
3月の終わりにDayLightイベントが発生したため、GMT + 2オフセットがあり、現在someDate.ToLocalTime()は1時間以上前に表示されます:2016-04-07 18:00 :00は正しくありません。
どのようにこれを普遍的に解決するには? 現在のUTC時刻を保存してから、ユーザーの現在のタイムゾーンを使用するシステム変換を適用し、現在のDayLightSavingステータスに関する保存されたUTC日付から正しいローカル時刻を常に返したいとします。 また、2016-04-07 17:00:00を返す必要があります。2016-04-07 18:00:00
使用' TIMESTAMP'を同じ値を印刷して、 'time_zone'セッション変数-MySQLを設定します残りを処理します。 – eggyal
これはデスクトップアプリですか、ウェブアプリですか?一般に、デスクトップアプリケーションだけが 'ToLocalTime'と' ToUniversalTime'を使用すべきです。 –