Java - 存储时间量(不是间隔)

时间:2016-05-04 13:34:29

标签: java time

我使用spring4 webapp,需要存储和计算时间(小时和分钟)的逻辑,但它不是一个间隔,因为数量是由用户插入或由第三方应用程序与HH检索:MM格式。

到目前为止,我已经完成了Float值,我想要更改,因为在float中,分钟数是100个基数,而不是60个基数,因为它是正确的。 我已经尝试了java.time.LocalTime但它不起作用,因为它超过24小时是不可接受的。

我认为可能有一种更清洁的方式来处理它。

提前致谢

----- EDIT

此webapp计算加班工作。用户输入员工按合同时间计算的小时数。

此时它被映射为一个浮点字段,其转换计算如下:

float hours = //Conversion of the HH:MM string input to HH.MM float within the framework valueToPay = hours * employee.getHourSalary();

这种方式不对,因为没有正确计算分钟数。我可以将整个时间转换为分钟数,但我正在寻找一种更清洁的方式,因为java.time API提供了很多。

2 个答案:

答案 0 :(得分:1)

LocalTime适用于当天的时间。

如果你需要一个教育,你有java.time.Duration。例如,持续时间为30小时(不适合LocalTime):

Duration thirtyHours = Duration.ofHours(30);

答案 1 :(得分:0)

使用org.joda.time.Duration

来自javadoc的

指定时间长度的不可变持续时间(以毫秒为单位)。

持续时间由固定的毫秒数定义。没有字段的概念,例如天或秒,因为这些字段的长度可以变化。可以将持续时间转换为Period以获得字段值。然而,这种转换通常会导致精度损失。

持续时间是线程安全且不可变的。