在最近所做项目中,需要在.NET环境里将Java中生成的Json字符串解析过来使用。而Java中传回的数据存在时间对象,是通过 System.currentTimeMillis() 从系统中读取的时间。
通过查询资料,Java中是计算现在到1970-1-1之间的毫秒数。而C#是从0001-1-1开始的,所以存在一个偏差量。
在获取时间上加上这个偏差即可。
DateTime UTCBaseTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime dt = UTCBaseTime.Add(new TimeSpan(JavaMS * TimeSpan.TicksPerMillisecond)).ToLocalTime();