轻松实现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#时间转换到这里就彻底实现了。

【编辑推荐】

  1. C#接口和抽象类技术特点浅析
  2. C#继承知识详解
  3. 一个C#时间计算的实例
  4. C#日期格式化的几种处理方法
  5. 代码详解C#比较时间的三种方法
责任编辑:彭凡 来源: 中国自学编程网
相关推荐

2009-08-24 14:20:13

C# 强制类型转换

2009-07-30 15:57:30

C#时间

2009-08-28 10:55:16

C#实现转换十六进制

2009-09-01 18:29:10

C#继承C#多态

2009-08-24 09:55:26

C#接口转换

2009-08-13 16:44:45

C#数据转换

2009-09-11 12:41:41

C#类型转换

2024-05-10 08:44:53

C#软件开发优化代码

2009-07-31 14:09:41

c#时间格式转换

2024-05-06 09:12:13

C#SerialPort监听数据

2009-08-28 16:29:02

C#类库工程

2009-07-30 16:56:14

C#时间控件

2009-08-26 18:11:52

前台与后台方法互调

2024-06-03 10:11:13

2009-08-28 10:44:46

C#字符数组转换

2024-03-04 19:07:58

OpenAI开发

2009-07-31 13:52:32

C#时间函数C#时间格式

2009-08-03 16:28:53

Java语言与C#语言

2009-08-24 17:45:39

Java与C#的区别

2024-11-18 17:04:03

Vue3C#
点赞
收藏

51CTO技术栈公众号