加入收藏 | 设为首页 | 会员中心 | 我要投稿 成都站长网 (https://www.028zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Unix时间戳转换成C#中的DateTime

发布时间:2022-09-30 04:32:43 所属栏目:Unix 来源:网络
导读: 发表于2022 年 6 月 6 日 作者 admin
先交代一下应用场景:我们的软件需要做一个简单的有效期验证保护。初始的想法是
在本地将安装时间、启动时间、当前时间做比较unix时间戳包,为了防止

发表于2022 年 6 月 6 日 作者 admin

先交代一下应用场景:我们的软件需要做一个简单的有效期验证保护。初始的想法是

在本地将安装时间、启动时间、当前时间做比较unix时间戳包,为了防止记录被修改,记录在注册表的特殊的地方并加密。

我使用了.net自带的rsa加密方法;这样一来,带来了一些麻烦,首先我必须存储公钥,私钥用来加密和解密(解决这个问题时,我采用了相当蠢的办法,我把他们跟时间记录在一起);第二我还得处理因为公私钥可能被改变而引起的异常;当然还有360拦截写入注册表的异常。总之,麻烦一堆。

所幸,后端的同学提供了一个服务,查询当前的Unix时间戳。于是有了这个问题。

 //
// Unix时间戳(timestamp)转换成当地时间的方法

戳狗表情包_unix时间戳包_unix时间戳转换成时间

// timestamp转成double后,扩大10000000倍,转成long,得到ltime
// ltime是从格林威治时间的计时起点(1970-01-01 00:00:00)到现在的时间间隔,转成TimeSpan,得到ts
// 计算格林威治的计时起点转成当地时间的DateTime,得到glwzStart
// 用glwzStart加上时间间隔ts,得到当前的当地时间
//
double dtime = double.TryParse(time, out dtime) ? dtime : ;
long ltime = (long)(dtime * );

戳狗表情包_unix时间戳包_unix时间戳转换成时间

TimeSpan ts = new TimeSpan(ltime);
DateTime glwzStart = TimeZone.CurrentTimeZone.ToLocalTime(DateTime.Parse("1970-1-1 00:00:00"));
DateTime cur = glwzStart.Add(ts);
if (cur = DateTime.Parse(ExpirationDate))
return ;
else
return ;

unix时间戳转换成时间_戳狗表情包_unix时间戳包

(编辑:成都站长网)

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

    推荐文章