我的Java开发学习之旅------>工具类:将播放器的进度值转换成相应的时间格式

原创 2013年12月06日 11:52:15

   

     在我的博客《我的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

====================================================================================


版权声明:本文为【欧阳鹏】原创文章,欢迎转载,转载请注明出处! 【http://blog.csdn.net/ouyang_peng】

相关文章推荐

我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值

MD5 即Message-Digest Algorithm 5(信息-摘要算法5 ),是一种用于产生数字签名的单项散列算 法,在1991年由MIT Laboratory for Computer Sc...

我的Java开发学习之旅------>工具类:Java使用正则表达式分离出字符串中的中文和英文

今天看到一个工具类使用正则表达式将一大段字符串中的中文和英文都分离出来了,在此记录一下,读者可以收藏! import java.util.ArrayList; import java.util.Col...

Java时间工具类DateUtils(把日期时间转换成xx秒前、xx分钟前、xx小时前...)

java中给定时间字符串,转换为距离现在几分钟,几天,几周前 import java.text.ParseException; import java.text.Simpl...

java开发中常用的日期时间工具类 DateUtil

java开发中常会用到的 日期时间工具类。 package org.demo; import java.text.DecimalFormat; import java.text.ParseExce...

Java开发时间处理工具类(全)

java开发过程中常用的一些事件处理工具类

Java类型转换成Json字符串的工具类小记

public class JsonUtil { public static String object2json(Object obj) { StringBuilde...
  • zxdu721
  • zxdu721
  • 2011年09月04日 11:25
  • 5154

Java 使用最新POI Lib 将Excel转换成Txt读取Excel内容工具类

有时候需要将Excel文档转换为Txt文档,同时又要对txt文档做一些简单的修改,比如添加点字符,或者重新组合成新的txt文档,内容与Excel有些许区别。单纯的Excel自带的转换功能无法满足我们的...
  • hap_gx
  • hap_gx
  • 2013年06月04日 18:48
  • 2470

我的Java开发学习之旅------>自己编写的Java数组操作工具

看到网上的一段关于对数组操作的代码,觉得有用,在此备用。import java.util.ArrayList; import java.util.Arrays; import java.util.Li...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我的Java开发学习之旅------>工具类:将播放器的进度值转换成相应的时间格式
举报原因:
原因补充:

(最多只允许输入30个字)