我的Java开发学习之旅

在我的博客《我的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:0000:00:08/00:01:4000: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开发学习之旅

相关文章:

你感兴趣的文章:

标签云: