Devo fare un errore evidente ma non riesco a capirlo.Timestamp Unix a .net DateTime
Sto importando una data memorizzata in un database mysql (è memorizzata dal CMS ExpressionEngine). È un timestamp unix, ovvero secondi dall'1/1/1970 alle 00:00.
così sto facendo qualcosa di simile:
DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
dateTime = dateTime.AddSeconds(orderdate /* int read from the database */);
Purtroppo non si ottiene il risultato giusto. Ecco un esempio:
Valore letto dal DB: 1.258.598,728 mila (si tratta di un giorno d'incarico)
Paypal ha inviato una e-mail che stabilisce l'ordine al Nov 18, 2009 12:45:20 PST
Il sito Web php che legge questo valore nel DB e sa come visualizzare questa data lo visualizza correttamente come 2009-11-18 03:45 PM (che sembra corretto poiché sono ospitato su un server sul costa est)
Il mio codice sopra dà 19/11/2009 02:45:28 !! (UTC che dà 18/11/2009 21:45 ora est, ovvero 6 ore di differenza con quanto previsto)
Ottengo lo stesso risultato se si utilizza DateTimeOffset avendo cura di inserire il fuso orario corretto.
Qualche idea su cosa sto facendo male?
Stampa: 18/11/2009 21:45:28 qui (GMT-4) – Gonzalo
sì, ho ancora lo stesso valore I ottenere (6 ore di differenza con il valore atteso) –
bene, quindi deve essere un problema con i dati. – scottm