在C#中获取如PHP函数time()一样的时间戳

 

c#中没有象PHP一样的time()时间戳函数,但有DateTime.Now.Ticks用来计算时间差。

此属性的值为自 0001 年 1 月 1 日午夜 12:00 以来所经过时间以 100 毫微秒为间隔表示时的数字。
dotnet下用DateTime.Now.Ticks能够得到精确的时间,单位是10^-7s。

经过实验,发现

long  a = (DateTime.Now.Ticks - aa.Ticks) / 10000000 - 8 * 60 * 60 ;
tbxUrl.Text
= a.ToString();

要减去8*60*60才和time()函数得到的值一样。
什么问题?刚好是8个时区产生的差别。

DateTime aa = new  DateTime( 1970 , 1 , 1 );
MessageBox.Show(
" 1970   " + aa.Ticks.ToString() + " now " + DateTime.Now.Ticks.ToString());
long  a = (DateTime.Now.Ticks - aa.Ticks) / 10000000 - 8 * 60 * 60 ;
tbxUrl.Text
= a.ToString();

同时发现c#里面DataTime有一个属性!DateTime.UtcNow已经考虑了时区问题。

ok~ 使用下面的代码即可

DateTime timeStamp = new  DateTime( 1970 , 1 , 1 );   // 得到1970年的时间戳
long  a = (DateTime.UtcNow.Ticks - timeStamp.Ticks) / 10000000 ;   // 注意这里有时区问题,用now就要减掉8个小时
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值