在java里,对数据进行格式化处理的对象在java.text包中。比如:MessageFormat。一般来说,如果去某一天中的某个时间的格式显示可以:
System.out.println(MessageFormat.format("当前时间:{0,time}", new Date()));
或者,用长整型数也可以:
System.out.println(MessageFormat.format("当前时间:{0,time}", 123456789));
得到的显示类似这样:
当前时间:10:25:44
不过,这个时间显示是带默认时区的,比如在中国,如果按照格林尼治时间是凌晨1点,会调整为上午9点,因为中国是东八区。
在特殊的场合,这种显示就不符合需求了。比如要写个播放器,里面需要显示视频播放的时长。
当然只要会java就可以写出格式化的方法。不过要注意的是,要考虑国际化/本地化的问题,如果在代码中写了本地化的文字提示,或者当前应用的文字,就不大好复用了。
这里写一个简单的代码,供有此需求的人参考:
long time = 1000 * 360'>3600 * 25 + 1000 * 60 * 5 + 1000 * 62;
long sec = 1000;
long min = 1000 * 60;
long hour = min * 60;
System.out.println(MessageFormat.format(
"{0,number,00}:{1,number,00}:{2,number,00}", time / hour, time
% hour / min, time % hour % min / sec));
这里的:
{0,number,00}:{1,number,00}:{2,number,00}