当前位置: 首页 > 知识库问答 >
问题:

Java以一种聪明的方式将秒转换为时间

舒博雅
2023-03-14

我想创建一个库,因为我找不到一个可以将秒或毫秒转换为时间的库。我指的是:

1)如果我有61秒,时间格式将是:1:01(不是1:1)

public String secondsToTime(int seconds){

    String format = "";
    int currentMinutes = 0, currentHour = 0;

    if((seconds / 60) > 0 ) {
        currentMinutes = seconds / 60;
        seconds = seconds - currentMinutes * 60;
    }
    if(currentMinutes >= 60)
    {
        currentHour = currentMinutes / 60;
        currentMinutes = currentMinutes - currentHour * 60;
    }


    if(currentHour == 0) {
        if(currentMinutes < 10 && seconds < 10)
            format = "0"+currentMinutes+":0"+seconds;
        else if(currentMinutes > 9 && seconds < 10)
            format = currentMinutes+":0"+seconds;
        else if(currentMinutes > 9 && seconds > 9)
            format = currentMinutes+":"+seconds;
        else if(currentMinutes < 10 && seconds > 9)
            format = "0"+currentMinutes+":"+seconds;
    }
    else
    {
        Log.i("TEST", "Current hour este" + currentHour);
        if(currentMinutes < 10 && seconds < 10)
            format = currentHour+":0"+currentMinutes+":0"+seconds;
        else if(currentMinutes > 9 && seconds < 10)
            format = currentHour+":"+currentMinutes+":0"+seconds;
        else if(currentMinutes > 9 && seconds > 9)
            format = currentHour+":"+currentMinutes+":"+seconds;
        else if(currentMinutes < 10 && seconds > 9)
            format = currentHour+":0"+currentMinutes+":"+seconds;
    }

    return format;
}

我之所以进行搜索并提出这些问题,是因为我想在Android上的媒体播放器中使用这个算法来显示歌曲的总时间和当前的秒数。

例如,我有一些混音超过一个小时,音乐只有几分钟,在播放时显示音乐文件的总时间00:02:30是不相关的,正确的方法是:2:30,因为没有小时(hour==0)。如果一个音乐文件有2分3秒,说2:3是不正确的,正确的方法是2:03。

共有1个答案

皇甫宇定
2023-03-14

如果我理解正确的话,这个怎么样:

   final DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
   return dateFormat.format(new Date(TimeUnit.SECONDS.toMillis(seconds)));
 类似资料:
  • 问题内容: 如何将时间格式转换为固定的秒数? PS Time有时可能仅采用格式。 问题答案: 不需要任何东西: 而且,如果您不想使用正则表达式:

  • 问题内容: 由于某种原因,我将时间格式转换为:。我想将其转换回原来的第一个(相同)格式。怎么可能 我的尝试: 现在,分钟呢? 考虑价值可能就像 我认为您了解了一样。 顺便说一下,如何转换 问题答案: 如果要获取时间格式:

  • 我从GPS接收机接收到一个时间戳,它以秒后的微秒时间表示:

  • 问题内容: 我需要将秒转换为“小时:分钟:秒”。 例如:“ 685”转换为“ 00:11:25” 我该如何实现? 问题答案: 您可以使用以下功能:

  • 问题内容: 我已使用ruby脚本将iso时间戳转换为纪元,我正在解析的文件具有以下时间戳结构: 由于我想保留毫秒,因此我使用了以下Ruby代码将其转换为纪元时间: 但是在python中,我尝试了以下操作: 但是我没有把原定的时间日期倒退, 我想知道这与我的格式化方式有关吗? 问题答案: 用途: 指令仅受支持,而不受。 UPDATE 替代使用,:

  • 问题内容: 我正在尝试将一个长值(从1970年1月1日经过的毫秒数,即Epoch)转换为格式时间。 我用作时间戳记的长值,是从log4j的日志记录事件字段获得的。 到目前为止,我已经尝试了以下操作,但失败了: 但我得到了不正确的值: 我该怎么办? 问题答案: 尝试这个: 有关该类接受的其他格式字符串的说明,请参见SimpleDateFormat。 请参见使用1200 ms输入的可运行示例。