【问题标题】:convert hours represented in double to duration [duplicate]将双倍表示的小时转换为持续时间[重复]
【发布时间】:2019-12-16 01:04:19
【问题描述】:

我有一个作为 Double 存储在数据库中的持续时间,但在我对 LocalTime 的操作中,我需要它是 Duration 类型。 我需要能够从 double 更改为 duration ,反之亦然。

我预计 3.5 小时的持续时间为 3 小时 30 分钟。

【问题讨论】:

  • 欢迎来到堆栈溢出,如果没有minimal reproducible example.,我们将无能为力。请浏览tour、帮助中心和How to Ask 部分,了解本网站的工作原理并帮助您改进您当前和未来的问题,这可以帮助您获得更好的答案。也请查看How do I ask
  • 你做了什么?发布您的代码。
  • 我不知道从哪里开始
  • 那你就不走运了。
  • 你能给出一个开始的想法吗?

标签: java duration java-time


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:
        // 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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      • 2020-09-05
      • 2022-11-12
      • 1970-01-01
      • 2018-10-07
      • 2016-05-21
      • 1970-01-01
      相关资源
      最近更新 更多