为了账号安全,请及时绑定邮箱和手机立即绑定

将以双精度表示的小时数转换为持续时间

将以双精度表示的小时数转换为持续时间

紫衣仙女 2023-05-24 15:11:38
我将持续时间作为 Double 存储在数据库中,但在我对 LocalTime 的操作中,我需要它是 Duration 类型。我需要能够从 double 更改为 duration ,反之亦然。我预计 3.5 小时的持续时间为 3 小时 30 分钟。
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

 // the Double value

    Double someTime = 3.5;


    // two ways of converting it to Duration

    // (we need to use minutes because Duration.of expects a long, which cannot be fractional

    Duration someDuration = Duration.ofMinutes((long) (someTime * 60));

    Duration someDuration2 = Duration.of((long) (someTime * 60), ChronoUnit.MINUTES);


    // convert the duration back to Double

    Double someTimeAgain = (double)someDuration.toMinutes() / 60;


查看完整回答
反对 回复 2023-05-24
?
月关宝盒

TA贡献1772条经验 获得超5个赞

我假设你的持续时间是小时数的两倍?然后你首先需要从中计算分钟数。这可能是 long durationInMinutes = durationFromDB * 60 或者,如果 0.5 是“半小时”,您需要先计算小时数,然后再计算分钟数并相加...所以 3.5h 是 180 分钟 + 30 分钟 = 210 分钟

然后你可以使用 java.time.Duration#ofMinutes(long minutes) 并得到你需要的。


查看完整回答
反对 回复 2023-05-24
  • 2 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信