我的英语不完美,但我希望你能理解我。
我尝试获取两个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
答案 0 :(得分:4)
LocalDate
没有时间成分,所以如果时间是在同一天,它们会有效地转变为同一时间。相反,只需按原样区分DateTimes;
int hours = Hours.hoursBetween(dateTimeOnline, dateTimeOffline).getHours();
(或者在您的情况下,由于差异只有2分钟,因此您只能看到Minutes
或Seconds
的结果)
答案 1 :(得分:2)
由于您已经有几秒钟的时间戳,因此可以通过公式简单计算:
int hours = (t2-t1)/3600;
或者如果你需要分数:
float hours = (t2-t1)/3600f;
更新:(也许我的答案建议:) 因此,在几秒钟内获得时间差异甚至更简单:
long seconds = t2-t1;