【发布时间】:2014-05-21 12:01:01
【问题描述】:
我开始使用 joda API 来处理我的 Web 应用程序的时区相关问题。这样做时我发现了非常奇怪的行为。我希望必须有一些解决方法。这是我的快照代码。
DateTime utcDateTime = new DateTime(System.currentTimeMillis(), DateTimeZone.UTC);
DateTime currentDateTime = DateTime.now();
int seconds = Seconds.secondsBetween(utcDateTime.toLocalDateTime(), currentDateTime.toLocalDateTime()).getSeconds();
System.out.println("hours::" + (((float)seconds)/(60*60)));
我的本地时区是:印度加尔各答(格林威治标准时间 + 5:30)
那么我应该得到 5.5 作为 myn 控制台输出,但我得到的是 hours::5.499722
不知道为什么?我做错什么了吗?
【问题讨论】:
-
hours,一个int,如何保存非整数值5.5?我对 joda 不是很熟悉,但看起来您可能想要获得Minutes.minutesBetween并使用它来代替。 -
你是对的..看看我编辑的问题..仍然有疑问。
-
现在你有浮点舍入错误。见floating-point-gui.de。听起来您想成对使用(小时,分钟),Jon Skeet 的回答显示了如何做。