加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Unix时间戳到.net DateTime

发布时间:2020-12-15 17:03:36 所属栏目:安全 来源:网络整理
导读:我一定是犯了一个明显的错误,但我无法弄清楚. 我正在导入存储在mysql数据库中的日期(它由ExpressionEngine CMS存储).它是一个unix时间戳,即自1970年1月1日00:00起的秒数. 所以我做的是这样的: DateTime dateTime = new System.DateTime(1970,1,0);dateTime
我一定是犯了一个明显的错误,但我无法弄清楚.

我正在导入存储在mysql数据库中的日期(它由ExpressionEngine CMS存储).它是一个unix时间戳,即自1970年1月1日00:00起的秒数.

所以我做的是这样的:

DateTime dateTime = new System.DateTime(1970,1,0);
dateTime = dateTime.AddSeconds(orderdate /* int read from the database */);

不幸的是我没有得到正确的结果.这是一个例子:

从DB读取的值:1258598728(这是订单日期)

Paypal于2009年11月18日12:45:20发送电子邮件确认订单

在DB中读取此值并知道如何正确显示此日期的php网站将其显示为2009-11-18 03:45 PM(这似乎正确,因为我托管在东海岸的服务器上)

上面的代码给出了11/19/2009 2:45:28 AM !! (UTC时间为11/18/2009 9:45 PM东部时间,即与预期的6小时差异)

如果使用DateTimeOffset来处理正确的时区,我会得到相同的结果.

知道我做错了什么吗?

试试这个:
DateTime epoch = new DateTime(1970,DateTimeKind.Utc);
DateTime myDate = epoch.AddSeconds(1258598728).toLocalTime();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读