Java Android将双精度转换为持续时间
我正在尝试将excel公式转换为Kotlin代码。但我面临着将双精度转换为持续时间的问题。Excel以持续时间格式显示。如何转换为持续时间格式?我不能使用持续时间,因为API级别低于26Java Android将双精度转换为持续时间,java,android,excel-formula,kotlin,duration,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 我能得到它的数字格式。但无法将其转换为持续时间。我不确定以下是否是最佳解决方案。你也许可以从Excel中获得更好的东西。无论如何,它是有效的
The result in
Excel Duration format - 0:47:22
Excel Number format - 0.03288861121
我能得到它的数字格式。但无法将其转换为持续时间。我不确定以下是否是最佳解决方案。你也许可以从Excel中获得更好的东西。无论如何,它是有效的
double durationDoble = 0.03288861121;
Duration dur = Duration.ofNanos((long) (durationDoble * TimeUnit.DAYS.toNanos(1)));
System.out.println(dur);
这张照片
PT47M21.576008544S
如果您不习惯持续时间
类和/或ISO 8601格式,它可能看起来有点滑稽,但它意味着47分21.576秒,因此如果四舍五入到整秒,它符合您的预期
我不能使用持续时间,因为API级别低于26
是的,您可以在小于26的API级别中使用java.time(现代java日期和时间API)中的Duration
。将ThreeTenABP添加到Android项目中,并确保导入org.threeten.bp.Duration
链接
- ,解释如何使用
java.time
- (JSR-310为三十,其中java.time是第一次被描述的)
- ,Android版Three Ten Backport
- ,解释得非常透彻
“0:47:22”
?数字是天数,因此您可以将其乘以24*60*60
以获得秒数,然后将其格式化为字符串。excel似乎没有问题。。。为什么要这样标记呢?您可以在API级别使用java.time(现代java日期和时间API)中的Duration
。将ThreeTenABP添加到Android项目中,请参阅。然后确保从org.threeten.bp
导入,例如org.threeten.bp.Duration
。