为了账号安全,请及时绑定邮箱和手机立即绑定

C#转换Datetime为 UnixTimeStamp方法和坑点

标签:
C#

获取当前时间UnixTimeStamp

DateTime.UtcNow返回以UTC表示的当前时间,Kind属性是DateTimeKind.Utc

private static readonly long Jan1St1970Ms = new  DateTime(1970,1,1,0,0,0,DateTimeKind.Utc).Ticks;public static long CurrentSecondUnixTimestamp(){   return (DateTime.UtcNow.Ticks - Jan1St1970Ms) / 10000000L;
}

转换时间到UnixTimestamp

DateTime.ToUniversalTime.  将当前 DateTime 对象的值转换为协调世界时 (UTC)。

public static long UnixTimeStampUTC(DateTime dateTime){
     Int32 unixTimeStamp;
     DateTime zuluTime = dateTime.ToUniversalTime();
     DateTime unixEpoch = new DateTime(1970, 1, 1);
     unixTimeStamp = (Int32)(zuluTime.Subtract(unixEpoch)).TotalSeconds;     return unixTimeStamp;
}

需要注意一下的坑点

DateTime.ToUniversalTime.  将当前 DateTime 对象的值转换为协调世界时 (UTC)。

 public static void Main()
 {
     DateTime x1 = new DateTime(2019, 1, 22,16,30,22);     
     long x = (x1.ToUniversalTime().Ticks - 621355968000000000L) / 10000000L;     long x2 = (x1.Ticks - 621355968000000000L) / 10000000L;
     
     Console.WriteLine("转换ToUniversalTime:" + x);
     Console.WriteLine("未转换ToUniversalTime:" + x2);
 }

如果在获取UnixTimeStamp的时候不先ToUniversalTime,结果可能跟你预想的就不一样了。这个地方需要特别注意一下。

webp

运行结果



作者:菜鸟飞不动
链接:https://www.jianshu.com/p/d2f48c9432e4


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消