首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否将秒值转换为小时、分钟、秒?

是否将秒值转换为小时、分钟、秒?
EN

Stack Overflow用户
提问于 2011-05-25 10:32:04
回答 20查看 264.3K关注 0票数 129

我一直在尝试将秒值(在BigDecimal变量中)转换为editText中的字符串,如"1小时22分33秒“或类似的内容。

我试过了:

代码语言:javascript
运行
复制
String sequenceCaptureTime = "";
BigDecimal roundThreeCalc = new BigDecimal("0");
BigDecimal hours = new BigDecimal("0");
BigDecimal myremainder = new BigDecimal("0");
BigDecimal minutes = new BigDecimal("0");
BigDecimal seconds = new BigDecimal("0");
BigDecimal var3600 = new BigDecimal("3600");
BigDecimal var60 = new BigDecimal("60");

(我有一个roundThreeCalc,它是以秒为单位的值,所以我尝试在这里转换它。)

代码语言:javascript
运行
复制
hours = (roundThreeCalc.divide(var3600));
myremainder = (roundThreeCalc.remainder(var3600));
minutes = (myremainder.divide(var60));
seconds = (myremainder.remainder(var60));
sequenceCaptureTime =  hours.toString() + minutes.toString() + seconds.toString();

然后,我将editText设置为sequnceCaptureTime字符串。但这并不管用。它每次都会强制关闭应用程序。我在这里完全超出了我的能力范围,任何帮助都是非常感谢的。祝你编码愉快!

EN

回答 20

Stack Overflow用户

回答已采纳

发布于 2011-05-25 10:39:46

你应该有更多的运气

代码语言:javascript
运行
复制
hours = roundThreeCalc.divide(var3600, BigDecimal.ROUND_FLOOR);
myremainder = roundThreeCalc.remainder(var3600);
minutes = myremainder.divide(var60, BigDecimal.ROUND_FLOOR);
seconds = myremainder.remainder(var60);

这将在每次除法后删除十进制值。

编辑:如果这不起作用,试试这个。(我只是编写并测试了它)

代码语言:javascript
运行
复制
public static int[] splitToComponentTimes(BigDecimal biggy)
{
    long longVal = biggy.longValue();
    int hours = (int) longVal / 3600;
    int remainder = (int) longVal - hours * 3600;
    int mins = remainder / 60;
    remainder = remainder - mins * 60;
    int secs = remainder;

    int[] ints = {hours , mins , secs};
    return ints;
}
票数 69
EN

Stack Overflow用户

发布于 2011-05-25 10:44:18

有必要使用BigDecimal吗?如果不需要,我会使用int或long来表示秒,这样会让事情变得简单一点:

代码语言:javascript
运行
复制
hours = totalSecs / 3600;
minutes = (totalSecs % 3600) / 60;
seconds = totalSecs % 60;

timeString = String.format("%02d:%02d:%02d", hours, minutes, seconds);

不过,您可能希望填充每个值,以确保它们是字符串中的两位数(或其他值)。

票数 268
EN

Stack Overflow用户

发布于 2015-10-13 22:15:48

DateUtils.formatElapsedTime(long),将经过的时间格式化为"MM:SS“或"H:MM:SS”。它返回您正在查找的字符串。您可以找到文档here

票数 91
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6118922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档