Android将双倍转换为持续时间

时间:2018-03-16 14:28:57

标签: java android excel-formula kotlin duration

我正在尝试将excel公式转换为kotlin代码。但我在将双倍转换为持续时间方面面临问题。 excel以持续时间格式显示。如何转换为持续时间格式?我不能使用持续时间作为API级别小于26。

The result in 
Excel Duration format - 0:47:22
Excel Number format - 0.03288861121

我能够以数字格式获取它。但无法将其转换为持续时间 请帮忙

1 个答案:

答案 0 :(得分:1)

我不确定以下是否是最佳解决方案。你可能会以某种方式从Excel中获得更好的东西。无论如何它都有效。

    double durationDoble = 0.03288861121;
    Duration dur = Duration.ofNanos((long) (durationDoble * TimeUnit.DAYS.toNanos(1)));
    System.out.println(dur);

打印

  

PT47M21.576008544S

如果您不熟悉Duration类和/或ISO 8601格式,它可能看起来有点滑稽,但它意味着47分21.576秒,所以如果四舍五入到整秒,它会同意您的预期

  

我无法使用持续时间,因为API级别小于26。

是的,您可以在小于26的API级别使用java.time(现代Java日期和时间API)中的Duration。将ThreeTenABP添加到您的Android项目中,并确保导入org.threeten.bp.Duration

<强>链接