我一定犯了一个明显的错误,但我无法弄清楚。
我正在导入存储在 mysql 数据库中的日期(它由 ExpressionEngine CMS 存储)。它是一个 unix 时间戳,即自 1/1/1970 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:20发送了一封建立订单的电子邮件
在数据库中读取此值并知道如何正确显示此日期的 php 网站将其显示为2009-11-18 03:45 PM(这似乎是正确的,因为我托管在东海岸的服务器上)
我上面的代码给出了11/19/2009 2:45:28 AM !! (UTC 时间为 2009 年 11 月 18 日晚上 9:45 东部时间,即与预期相差 6 小时)
如果使用 DateTimeOffset 来处理正确的时区,我会得到相同的结果。
知道我做错了什么吗?