Должно быть, я совершу явную ошибку, но я не могу понять это.Unix timestamp to .net DateTime
Я импортирую дату, хранящуюся в базе данных mysql (она хранится в CMS ExpressionEngine). Это временная метка unix, то есть секунд с 01.01.1970 00:00.
Так что я делаю что-то вроде этого:
DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
dateTime = dateTime.AddSeconds(orderdate /* int read from the database */);
К сожалению, я не получаю правильный результат. Вот пример:
Значение считывается из БД: (это дата заказа)
Paypal отправлен по электронной почте, устанавливающее порядок в 18 ноября 2009 12:45:20 PST
Веб-сайт php, который считывает это значение в БД и знает, как правильно отображать эту дату, отображает его как 2009-11-18 03:45 PM (что кажется правильным, поскольку я размещен на сервере на восточное побережье)
Мой код выше дает 19.11.2009 2:45:28 AM !! (UTC, который дает 11/18/2009 21:45 по восточному времени, то есть 6-часовую разницу с тем, что ожидается)
Получаю тот же результат, если вы используете DateTimeOffset, заботясь о том, чтобы установить правильный часовой пояс.
Любая идея, что я делаю неправильно?
Отпечатки: 11/18/2009 9:45:28 здесь (GMT-4) – Gonzalo
да, я все еще такое же значение I get (разница в 6 часов с ожидаемым значением) –
ну, значит, это проблема с данными. – scottm