我是一个服务器,我有一个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