私は明らかな間違いをしているに違いありませんが、それを理解することはできません。
mysqlデータベースに保存されている日付をインポートしています(ExpressionEngine CMSによって保存されています)。これはUNIXタイムスタンプです。つまり、1970年1月1日00:00からの秒数です。
だから私はこのようなことをしています:
DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
dateTime = dateTime.AddSeconds(orderdate /* int read from the database */);
残念ながら、正しい結果が得られません。次に例を示します。
DBから読み取った値:1258598728(これは注文日です)
Paypalは、2009年11月18日12:45:20PSTに注文を確定するメールを送信しました
DBでこの値を読み取り、この日付を正しく表示する方法を知っているphp Webサイトは、2009-11-18 03:45 PMとして正しく表示します(東海岸のサーバーでホストされているため、これは正しいようです)
上記の私のコードは2009年11月19日2:45:28AMを与えます!! (UTCは、2009年11月18日午後9時45分に東の時刻を示します。つまり、予想と6時間の差があります)
適切なタイムゾーンを設定するように注意してDateTimeOffsetを使用しても、同じ結果が得られます。
私が間違っていることについて何か考えはありますか?