java 时间转换,将秒转换为时分秒格式 |
您所在的位置:网站首页 › 6分零4秒的视频 › java 时间转换,将秒转换为时分秒格式 |
介绍 主要讲解java 环境下,如何将秒转换为播放器的格式:00:00:00(时:分:秒)。 很多情况下存储一个视频或者音频的长度可能都是秒。而我们UI上显示需要显示成时分秒格式。 以前弄过很多次的这种时间转变。但是每次隔一段较长时间后。 再次需要的时候,经常重头开始。所以想写一篇彻底交代该如何实现的文章。 把整个思路也进行完整的交代。 准备列一下各种关键值的转换,看懂这个表格后。我们敲代码的时候才能有一个具体的概念。 秒钟 分钟 时钟 1 0.016667 0.000278 30 0.5 0.008333 60 1 0.016667 1800 30 0.5 3600 60 1 7200 120 2 86400 1440 24 我们可以看到: 1.秒钟没有达到60,分钟和时钟没有值。 2.秒钟没有达到3600,时钟没有值。 3.秒钟达到86400的时候,时钟已经不够了已经跨天了。我们需要day的参数。 代码当我们知道了关键节点的转换关系后 public static void main(String[] args) { int second = 100; //这是随便输入的秒值 int hour = second / 3600; // 得到分钟数 second = second % 3600;//剩余的秒数 int minute = second / 60;//得到分 second = second % 60;//剩余的秒 System.out.println(String.format("%02d:%02d:%02d", hour, minute, second)); } //输出00:01:40我们下面在来详细介绍上面的代码和意义。 int hour = second / 3600 :这行代码利用了int值只能是整数的形式,实际计算值是:0.027778。但是时分秒格式化显示的时候,没有小数位。我们可以直接取整,得到实际的小时数。 second % 3600:这个百分号在计算的时候是定义了取余计算。也就是我们除法除不尽的时候的余数值。 然后后面的second / 60 和second % 60和上面取时的值的概念是一样的。 最后输出的时候:String.format("%02d:%02d:%02d", hour, minute, second) 是因为根据字符长度进行了补零操作,因为我们如果得到的结果是1:40秒的。那么我们需要在1的前面补0 这种补0计算,最便捷的方法就是直接使用%02d 进行补充即可。这个关键字的意思就是输入整数,整数长度小于2的时候进行补充长度。如果我们想补充更长调整2为其他数字就可以了,在String进行格式化的时候会根据这个值判断整数长度是否满足,不够的就会补0。 6行代码,实现转00:00:00格式。同时交代了计算逻辑 疑问上面的计算中,秒值如果是外部输入的情况。需要判断是否为0 么? 答案是:不需要。数学公式计算中被除数是可以为0的,只是除数不能为0。 在上面的例子中,3600 和60 才是除数。 希望能够帮助大家弄明白转换的逻辑。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |