我是一個服務器,我有一個xml-rpc API連接到我。其中有一個名爲「player.seen」的函數,返回上次看到「玩家」時的Unix時間戳。我試圖用這個數字來顯示自用戶被查看以來已經過了多長時間。出於某種原因,它是不給正確的價值觀:Unix時間戳的時間轉換
舊代碼:http://pastebin.com/tPe6mkyJ
我試圖重新寫劇本在許多不同的方式,卻忘了備份。我想知道是否有人知道更好的方式來完成此轉換。
編輯: 編輯我的代碼使用joda-Time後,我仍然得到不正確的值。例如,根據遊戲中/看到的命令,玩家「pomi44」在15天,9小時,10分鐘內沒有看到。我的程序輸出「1天,18小時,18分鐘,10秒」。
新代碼:
Object[] params1 = new Object[]{API_KEY, playerName};
String result = (String) client.execute("player.seen", params1);
int timeStamp = Integer.parseInt(result);
Date curDate = new Date();
DateTime start = new DateTime(timeStamp * 1000L);
DateTime end = new DateTime(curDate.getTime());
Period period = new Period(start, end);
int seconds = period.getSeconds();
int minutes = period.getMinutes();
int hours = period.getHours();
int days = period.getDays();
System.out.println(days + " days, " + hours + " hours, " + minutes + " minutes, " + seconds + " seconds.");
我已經到位的「1000」嘗試不同的數字,但都給出不正確的值。例如,根據遊戲中/看到的命令,玩家「pomi44」在15天,9小時和10分鐘內沒有被看到。我的程序爲pomi44輸出「1天,18小時,18分鐘,10秒」。
在此先感謝。
喬達 - 時間的方式對工作一堆公用事業隨着時間的... Offhand我想你會想要構造兩個Instant,做一個[時間](http://joda-time.sourceforge.net/key_interval.html),然後將其轉換爲一個時期提取不同的領域(天,小時等)。但我可能是錯的:) – Charlie 2013-03-12 01:20:34