我想创建一个库,因为我找不到一个将秒或毫秒转换成时间.我的意思是:
1)如果我有61秒,时间格式为:1:01(不是1:1)
2)如果我相当于1小时1分钟,我希望它显示相同:1:01:00
我通过以下结构实现了这一目标:
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;
}
Run Code Online (Sandbox Code Playgroud)
有更快的方法吗?
这个问题不重复,因为java.util.concurrent.TimeUnit如果你想要显示我想要的格式,它不符合标准.我同意他为你做转换,但我仍然需要很多if语句来检查每次是否有一个小时我不能显示我的分钟只有1个字符并且不显示小时因为与00小时无关.
我正在进行此搜索并询问这些问题,因为我想将此算法用于媒体播放器Android以显示总歌曲时间和当前歌曲的第二部分.
例如,我有一些超过一小时的混音和几分钟的音乐,与播放音乐文件的总时间00:02:30无关,正确的方法是:2:30因为没有时间(小时== 0)如果音乐文件有2分3秒,说2:3不正确,正确的方式是2:03.
小智 7
如果我理解正确的话怎么样:
final DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
return dateFormat.format(new Date(TimeUnit.SECONDS.toMillis(seconds)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2318 次 |
| 最近记录: |