我的Java开发学习之旅------>工具类:将播放器的进度值转换成相应的时间格式
2013-12-06 11:52
423 查看
在我的博客《我的Java开发学习之旅------>Java 格式化类(java.util.Formatter)基本用法,地址:http://blog.csdn.net/ouyang_peng/article/details/16355237》中,就使用过了过了Formatter将播放器的进度值之转换为相应的时间,下面这个工具类也可以实现同样的效果。
/** * 得到(当前播放时间/总播放时间)的格式如:<br/> * 00:00:08/00:01:40 <br/> * 00:03:00/00:30:00 <br/> * @author ouyangpeng (http://blog.csdn.net/ouyang_peng) */ public class TimeUtil { /** * 格式化时间单元(时、分、秒) * 小于10的话在十位上补0,如传入2的话返回02,传入12的话返回12 * @param time * 播放时间 * @return 格式化后的时间,如(02) */ public static String formatTimeUnit(int time) { return time < 10 ? "0" + time : "" + time; } /** * @param format_time * @return (时:分:秒)格式的时间格式,如(00:03:00) */ public static String formatTimeString(int format_time) { String hours=formatTimeUnit(format_time / 3600); //时 String minutes=formatTimeUnit((format_time / 60) % 60); //分 String seconds=formatTimeUnit(format_time % 60); //秒 return hours + ":" + minutes+ ":" + seconds; } /** * @param current_time * 当前播放时间 * @param total_time * 总播放时间 * @return 当前播放时间/总播放时间,如(00:03:02/00:31:52) */ public static String getFormatTime(int current_time, int total_time) { current_time = Math.abs(current_time); // 得到当前播放时间的绝对值 total_time = Math.abs(total_time); // 得到总播放时间的绝对值 return formatTimeString(current_time) + "/" + formatTimeString(total_time); } }
下面测试一下上面的工具类是否有效。
public class Test { public static void main(String[] args) { System.out.println(TimeUtil.formatTimeString(180)); System.out.println(TimeUtil.getFormatTime(8, 100)); System.out.println(TimeUtil.getFormatTime(182, 1912)); } }
测试结果如下:
00:03:00 00:00:08/00:01:40 00:03:02/00:31:52
ps:关于上面的formatTimeString方法,可以使用下面方法代替,其实是一样的。
class TimeUtils{
private StringBuilder sFormatBuilder = new StringBuilder();
private Formatter sFormatter = new Formatter(sFormatBuilder, Locale.getDefault());
private final Object[] sTimeArgs = new Object[3];
public String makeTimeString(int secs) {
String durationformat = "%1$02d:%2$02d:%3$02d";
sFormatBuilder.setLength(0);
Object[] timeArgs = sTimeArgs;
timeArgs[0] = secs / 3600;
timeArgs[1] = (secs % 3600) / 60;
timeArgs[2] = (secs % 3600 % 60) % 60;
return sFormatter.format(durationformat, timeArgs).toString().trim();
}
}
调用TimeUtis的makeTimeString()方法也可以返回类似的字符串。public class Test {
public static void main(String[] args) {
System.out.println(new TimeUtils2().makeTimeString(21423));
}
}
运行结果如下:
05:57:03
====================================================================================
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng
====================================================================================
相关文章推荐
- JAVA学习17_Java时区转换及时间格式
- 我的Java开发学习之旅------>工具类:Java使用正则表达式分离出字符串中的中文和英文
- 我的Java开发学习之旅------>Java金额大小写的转换
- java时间格式转换String->long
- Java将Unix时间戳转换成指定格式日期字符串工具类
- Java微信二次开发之10-解析接口中的消息创建时间CreateTime 并转换成需要的格式
- Java开发中常见的时间格式转换方法
- 我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值
- 我的Java开发学习之旅------>二进制、八进制、十进制、十六进制之间转换
- java工具类——字符串类型的时间格式转换为Timestamp类型
- iOS开发中需要的时间格式的转换
- Java 完成水吧点饮品系统开发 集合List<E>的学习
- 百度天气api开发 全解析xml和json格式 使用json-lib jsonObject、 Gson 方式把json 转换成 java对象
- 我的Java开发学习之旅------>在Dos环境下Java内部类的编译和运行
- java转换多种String格式到Date的类工具类
- 我的Java开发学习之旅------>Base64的编码思想以及Java实现
- iOS开发笔记之Timestamp时间戳与各地区实际时间格式的相互转换
- Java时间格式的相互转换
- Java将Unix时间戳转换成指定格式日期
- JAVA工具类集锦2--时间格式转化类