[問題] 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