Joda-Time - 两个日期之间的秒数

时间:2016-03-09 16:17:21

标签: java android unix

我的英语不完美,但我希望你能理解我。

我尝试获取两个unix时间戳之间的秒数差异,但它只返回0.

这是我的代码

unixOnline = Long.valueOf(online);
unixOffline = Long.valueOf(offline);

DateTimeZone BERLIN = DateTimeZone.forID("Europe/Berlin");
DateTime dateTimeOnline = new DateTime(unixOnline * 1000L, BERLIN);
DateTime dateTimeOffline = new DateTime(unixOffline * 1000L, BERLIN);

int seconds = Seconds.secondsBetween(new LocalDate(dateTimeOnline), new LocalDate(dateTimeOffline)).getSeconds();
System.out.println("Seconds: " + seconds);

编辑: 在线时间戳:1457536522 离线时间戳:1457536642

2 个答案:

答案 0 :(得分:4)

LocalDate没有时间成分,所以如果时间是在同一天,它们会有效地转变为同一时间。相反,只需按原样区分DateTimes;

int hours = Hours.hoursBetween(dateTimeOnline, dateTimeOffline).getHours();

(或者在您的情况下,由于差异只有2分钟,因此您只能看到MinutesSeconds的结果)

编辑:由于问题似乎与代码中的时区BERLIN无关,因此这个答案有点过于复杂。相反,如果它只是UTC时间之间的时间差,请使用krzydyn的答案。

答案 1 :(得分:2)

由于您已经有几秒钟的时间戳,因此可以通过公式简单计算:

 int hours = (t2-t1)/3600;

或者如果你需要分数:

float hours = (t2-t1)/3600f;

更新:(也许我的答案建议:) 因此,在几秒钟内获得时间差异甚至更简单:

long seconds = t2-t1;