[英]Joda-Time - Number of seconds between two dates
我的英语不太好,但我希望你能理解我。
我试图得到两个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
LocalDate
没有时间成分,因此,如果时间在同一天,它们实际上将变成同一时间。 相反,只需按原样比较DateTimes即可;
int hours = Hours.hoursBetween(dateTimeOnline, dateTimeOffline).getHours();
(或者您的情况是,由于相差只有2分钟,因此您只能以Minutes
或Seconds
查看结果)
编辑:由于该问题似乎与代码中的时区BERLIN无关,因此此答案有点复杂。 如果只是UTC时间之间的时间差,请使用krzydyn的答案。
由于您已经有了以秒为单位的时间戳记,因此可以通过公式简单地进行计算:
int hours = (t2-t1)/3600;
或者,如果您需要分数:
float hours = (t2-t1)/3600f;
更新:(也许我得到了答案的建议:)因此,以秒为单位的时间差异更加简单:
long seconds = t2-t1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.