轻松实现Java与C#时间转换

轻松实现Java与C#时间转换

笔者这两天做了一个Web Service,要记录操作时间,定义为long型数据,因为Java中可以把当前时间表示成long类型,所以本文政要讲到如何实现Java与C#时间转换。

 

Java中可以用System.currentTimeMillis() 获取当前时间的long形式,它的标示形式是从1970年1月1日起的到当前的毫秒的数。Web Service 是用Java写的,把这个long型数据转成timestamp再存入MySQL,所以用调用我们的Web Service可以直接把这个值传入。
但是.NET下计算时间的方式不太一样,它是计算单位是Ticks,这里就需要做一个C#时间转换。关于Ticks,msdn上是这样说的:
A single tick represents one hundred nanoseconds or one ten-millionth of a second. The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
就是从公元元年元月1日午夜到指定时间的千万分之一秒了,为了和Java比较,说成万分之一毫秒。
( System.DateTime.UtcNow.Ticks - new DateTime(1970, 1, 1, 0, 0, 0).Ticks)/10000;
如果要得到Java中 System.currentTimeMillis() 一样的结果,就可以做Java与C#时间转换,写成上面那样,也可以这样写:

   
   
  1. TimeSpan ts=new TimeSpan( System.DateTime.UtcNow.Ticks - new DateTime(197011000).Ticks);   
  2. (long)ts.TotalMilliseconds;  

需要注意的是这里是用的 System.DateTime.UtcNow 而不是 System.DateTime.Now ,因为我们在东八区,如果用后面那种形式就会发现时间会和想象当中的差了8个小时。Java与C#时间转换到这里就彻底实现了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值