看板 AndroidDev 關於我們 聯絡資訊
各位大大 請教一下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"); } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.121.217.210 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1494660040.A.411.html
fatrabitree: 不能C# tick <-> UTC string <-> JAVA tick這樣嗎?05/14 01:07
ssccg: java或是其他用unix time的系統是從1970/1/1起算的05/14 01:55
ssccg: C#的DateTime是從1/1/1起算,自己減掉這個時間差就可以05/14 01:57
ssccg: 不過單位要自己處理05/14 02:05
ssccg: 類似一樓說的用某種時間字串轉換也是方法,通常用ISO 860105/14 02:12
ssccg: 或是你也可以用自訂的05/14 02:18
ssccg: 但是C#的Ticks單位是100ns,java的Date只支援到1ms05/14 02:19
ssccg: 你現在這個寫法/20000000是轉成單位為2秒喔...05/14 02:22
ssccg: /10000才是同java的Date.getTime,還要加起始時間差05/14 02:23
areyo: 糟糕,數學太差……05/16 22:14
所以我只要把java的ticks / 10000嗎? ※ 編輯: areyo (122.121.219.46), 05/16/2017 22:21:08
y3k: 我覺得C#自己要這樣玩其實OK 但是也內建個函數幫忙轉嘛.... 05/17 18:21
ssccg: .NET 4.6有新增這個內建函數了 05/17 21:35
ssccg: DateTimeOffset.From/ToUnixTimeSeconds/Milliseconds 05/17 21:36
ssccg: java的就是這個UnixTimeMilliseconds 05/17 21:36
ssccg: 用算的好像 (C# Ticks - 621355968000000000)/10000 = java 05/17 21:39