繁体   English   中英

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

[英]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分钟,因此您只能以MinutesSeconds查看结果)

编辑:由于该问题似乎与代码中的时区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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM