我所属的服务器有一个我要连接的 xml-rpc API。其中有一个名为“player.seen”的函数,它返回最后一次看到“player”时的 Unix 时间戳。我正在尝试使用这个数字来显示自从看到用户以来已经过了多长时间。由于某种原因,它没有给出正确的值:
旧代码: http: //pastebin.com/tPe6mkyJ
我尝试过以许多不同的方式重写脚本,但忘记备份它们。我想知道你们中是否有人知道完成这种转换的更好方法。
编辑:编辑我的代码以使用 joda-Time 后,我仍然得到不正确的值。例如,根据游戏内 /seen 命令,玩家“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”,但都给出了不正确的值。例如,根据游戏中的 /seen 命令,玩家“pomi44”有 15 天 9 小时 10 分钟没有出现。我的程序为 pomi44 输出“1 天 18 小时 18 分钟 10 秒”。
提前致谢。