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

简介:          在我的博客《我的Java开发学习之旅------>Java 格式化类(java.util.Formatter)基本用法,地址:http://blog.csdn.net/ouyang_peng/article/details/16355237》中,就使用过了过了Formatter将播放器的进度值之转换为相应的时间,下面这个工具类也可以实现同样的效果。

   

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

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


相关文章
|
6天前
|
算法 Java
Java基础学习day03-作业
本内容包含多个Java编程案例,涵盖条件判断、循环、数组、随机数生成、素数判断等基础算法练习,适用于巩固Java语法与逻辑思维训练。
54 6
|
3天前
|
Java
Java基础学习day05-作业
本文为Java基础学习第五天作业,通过五个案例练习类与对象的定义、构造方法、set/get方法及成员方法的应用。涵盖女友、学生、教师、手机和电影等类的设计与测试,强化面向对象编程基础。
22 2
|
3天前
|
安全 Java 编译器
Java基础学习day06
本节学习Java继承与多态核心概念:继承通过extends实现,子类可复用父类非私有成员,支持单继承与多层继承,遵循就近原则并可用super调用父类成员;方法重写需满足权限与返回值约束,常用于重写toString等。多态基于继承,实现父类引用指向子类对象,提升扩展性但无法直接访问子类独有方法,可通过instanceof安全类型转换。
47 2
|
6天前
|
存储 Java 索引
Java基础学习day04
本节讲解Java数组基础,包括静态与动态初始化、元素访问及遍历方法,并介绍二维数组的定义与使用,帮助理解程序数据存储方式。
31 5
|
6天前
|
Java
Java基础学习day02-作业
本内容包含13个Java编程练习需求,涵盖变量定义、数据类型转换、运算符使用、键盘输入及条件判断等基础语法实践,适合初学者巩固Java核心基础知识。
24 5
|
4天前
|
存储 Java
Java基础学习day05
本节介绍Java面向对象编程基础,涵盖类与对象的概念、构造器、this关键字、封装、Javabean及static修饰符的使用。重点讲解如何通过类设计对象、实现数据封装与方法暴露,并理解静态成员的特点与应用场景。
28 2
|
4天前
|
Java
Java基础学习day04-作业
本作业包含8个Java编程案例,涵盖数组的定义与遍历、求和、最值计算、去极值求平均、元素倍增、二维数组行和计算及查找指定元素等内容,旨在巩固Java基础语法与数组操作技能。
44 1
|
7天前
|
消息中间件 人工智能 Java
抖音微信爆款小游戏大全:免费休闲/竞技/益智/PHP+Java全筏开源开发
本文基于2025年最新行业数据,深入解析抖音/微信爆款小游戏的开发逻辑,重点讲解PHP+Java双引擎架构实战,涵盖技术选型、架构设计、性能优化与开源生态,提供完整开源工具链,助力开发者从理论到落地打造高留存、高并发的小游戏产品。
|
7天前
|
存储 Java Go
对比Java学习Go——函数、集合和OOP
Go语言的函数支持声明与调用,具备多返回值、命名返回值等特性,结合`func`关键字与类型后置语法,使函数定义简洁直观。函数可作为一等公民传递、赋值或作为参数,支持匿名函数与闭包。Go通过组合与接口实现面向对象编程,结构体定义数据,方法定义行为,接口实现多态,体现了Go语言的简洁与高效设计。
|
7天前
|
存储 Oracle Java
Java基础学习day01
本课程为Java基础学习第一天内容,涵盖Java起源、JDK组成及基本语法。介绍Java由Sun公司于1995年推出,后被Oracle收购,詹姆斯·高斯林为Java之父。讲解JDK、JRE、JVM的关系及核心命令javac与java的使用。语法部分包括注释、字面量、变量定义与存储方式,帮助初学者掌握Java基础概念与编程规范。
31 3