Je dois faire une erreur évidente, mais je ne peux pas comprendre. J'importe une date stockée dans une base de données mysql (elle est stockée par le CMS ExpressionEngine). C'est un horodatage unix, c'est-à-dire des secondes depuis le 1/1/1970 00:00.Timestamp Unix à .net DateTime
Je fais quelque chose comme ceci:
DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
dateTime = dateTime.AddSeconds(orderdate /* int read from the database */);
Malheureusement je ne suis pas le bon résultat. Voici un exemple:
Valeur lue à partir du DB: (ce qui est une date de commande)
Paypal a envoyé un courriel à établir l'ordre 18 novembre 2009 12:45:20 PST
Le site Web php qui lit cette valeur dans la base de données et qui sait comment afficher cette date correctement l'affiche comme 2009-11-18 03:45 PM (ce qui semble correct étant donné que je suis hébergé sur un serveur le côte est)
Mon code ci-dessus donne 11/19/2009 2:45:28 AM !! (UTC qui donne 18/11/2009 à 21:45 heure est, c'est-à-dire 6 heures de différence avec ce qui est attendu)
J'obtiens le même résultat si j'utilise DateTimeOffset en prenant soin de mettre le bon fuseau horaire.
Une idée de ce que je fais mal?
Imprime: 18/11/2009 21:45:28 ici (GMT-4) – Gonzalo
oui j'ai toujours la même valeur I obtenir (6 heures de différence avec la valeur attendue) –
bien, alors il doit y avoir un problème avec les données. – scottm