[问题] c# datetime ticks转换

楼主: areyo (没有名字的怪物)   2017-05-13 15:20:36
各位大大
请教一下C#的Datetime ticks该怎么转换到 java的去呢??
找了一些文章 C# & JAVA的基准值不一样
也找了另一个函式库Joda-time,但不晓得如何转换
故上来请教高手
谢谢
C#范例
static string GetDateTime()
{
DateTime now = DateTime.Now;
DateTime withoutYear =
new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Se
co
long t = withoutYear.Ticks / (long)20000000;
return ((UInt32)t).ToString("X000000");
}
作者: fatrabitree (胖兔子)   2017-05-14 01:07:00
不能C# tick <-> UTC string <-> JAVA tick这样吗?
作者: ssccg (23)   2017-05-14 01:55:00
java或是其他用unix time的系统是从1970/1/1起算的C#的DateTime是从1/1/1起算,自己减掉这个时间差就可以不过单位要自己处理类似一楼说的用某种时间字串转换也是方法,通常用ISO 8601或是你也可以用自订的但是C#的Ticks单位是100ns,java的Date只支援到1ms你现在这个写法/20000000是转成单位为2秒喔.../10000才是同java的Date.getTime,还要加起始时间差
楼主: areyo (没有名字的怪物)   2017-05-16 22:14:00
糟糕,数学太差……
作者: y3k (激流を制するは静水)   2017-05-17 18:21:00
我觉得C#自己要这样玩其实OK 但是也内建个函数帮忙转嘛....
作者: ssccg (23)   2017-05-17 21:35:00
.NET 4.6有新增这个内建函数了DateTimeOffset.From/ToUnixTimeSeconds/Millisecondsjava的就是这个UnixTimeMilliseconds用算的好像 (C# Ticks - 621355968000000000)/10000 = java

Links booklink

Contact Us: admin [ a t ] ucptt.com