gpt4 book ai didi

java - 将时间长度转换为适当的单位

转载 作者:行者123 更新时间:2023-12-01 09:33:23 24 4
gpt4 key购买 nike

我有一个时间,以秒为单位,有可能很大。我希望将所述时间转换为“适当的”四舍五入、可读格式。

我已经有实现此目的的代码,但是它不是很有效(并且包含一大堆神奇的数字):

    String readable = decayTime + " minutes";
if(decayTime > 60)
{
decayTime /= 60;
readable = decayTime + " hours";

if(decayTime > 24)
{
decayTime /= 24;
readable = decayTime + " days";

if(decayTime > 365)
{
decayTime /= 365;
readable = decayTime + " years";

if(decayTime > 1000000)
{
decayTime /= 1000000;
readable = decayTime + "mn years";

if(decayTime > 1000)
{
decayTime /= 1000;
readable = decayTime + "bn years";
}
}
}
}

除了切换魔法数字之外,我个人无法想出如何让它变得更好。

我问的本质上是什么是更好的方法,或者是否有内置的东西可以提供帮助?

编辑:移至此处https://codereview.stackexchange.com/questions/139970/convert-length-of-time-to-appropriate-unit

最佳答案

您可以使用持续时间,但它不会转换为年。

Duration.ofSeconds(decayTime).toNanos();
Duration.ofSeconds(decayTime).toMillis();
Duration.ofSeconds(decayTime).toMinutes();
Duration.ofSeconds(decayTime).toHours();
Duration.ofSeconds(decayTime).toDays();

参见https://docs.oracle.com/javase/tutorial/datetime/iso/period.htmlhttps://docs.oracle.com/javase/8/docs/api/java/time/Duration.html

另一个选项是:

TimeUnit.SECONDS.toNanos(decayTime);
TimeUnit.SECONDS.toMicros(decayTime);
TimeUnit.SECONDS.toMillis(decayTime);
TimeUnit.SECONDS.toMinutes(decayTime);
TimeUnit.SECONDS.toHours(decayTime);
TimeUnit.SECONDS.toDays(decayTime);

今年你可以使用一些技巧,例如:

Long.parseLong(new SimpleDateFormat("YYYY").format(new Date(Duration.ofSeconds(decayTime).toMillis())));

但我强烈不推荐它。

关于java - 将时间长度转换为适当的单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39216347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com