Muszę robić oczywisty błąd, ale nie mogę tego rozgryźć.Uniwersalny znacznik czasu dla .net DateTime
Importuję datę zapisaną w bazie danych mysql (jest ona przechowywana przez ExpressionEngine CMS). Jest to znacznik czasu unix, czyli sekundy od 1/1/1970 00:00.
Więc robię coś takiego:
DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
dateTime = dateTime.AddSeconds(orderdate /* int read from the database */);
Niestety nie uzyskać odpowiedni efekt. Oto przykład:
Wartość odczytana z DB: (jest to data zamówienia)
Paypal wysłany email ustanawiający zamówienia u 18 listopad 2009 12:45:20 CET
Witryna php, która odczytuje tę wartość w DB i wie, jak wyświetlić tę datę, wyświetla ją poprawnie jako (co wydaje się być poprawne, ponieważ jestem hostowana na serwerze na serwerze). wschodnie wybrzeże)
Mój kod powyżej daje 11/19/2009 2:45:28 AM !! (UTC, które daje 11/18/2009 21:45 czasu wschodniego, czyli 6 godzin różnicy w stosunku do oczekiwanych wartości)
Otrzymuję ten sam wynik, jeśli korzystam z DateTimeOffset, dbając o ustawienie odpowiedniej strefy czasowej.
Każdy pomysł, co robię źle?
Drukuje: 11/18/2009 21:45:28 tutaj (GMT-4) – Gonzalo
tak, ale wciąż nie ma tej samej wartości I get (różnica 6 godzin z oczekiwaną wartością) –
cóż, to musi być problem z danymi. – scottm