java 时间转换,将秒转换为时分秒格式

2023-07-13 15:13:39 浏览数 (1)

介绍

主要讲解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的参数。

代码

当我们知道了关键节点的转换关系后

代码语言:javascript复制
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("d:d:d", hour, minute, second)); 
}
 //输出00:01:40

我们下面在来详细介绍上面的代码和意义。

int hour = second / 3600 :这行代码利用了int值只能是整数的形式,实际计算值是:0.027778。但是时分秒格式化显示的时候,没有小数位。我们可以直接取整,得到实际的小时数。

second % 3600:这个百分号在计算的时候是定义了取余计算。也就是我们除法除不尽的时候的余数值。

然后后面的second / 60second % 60和上面取时的值的概念是一样的。

最后输出的时候:String.format("d:d:d", hour, minute, second)

是因为根据字符长度进行了补零操作,因为我们如果得到的结果是1:40秒的。那么我们需要在1的前面补0

这种补0计算,最便捷的方法就是直接使用d 进行补充即可。这个关键字的意思就是输入整数,整数长度小于2的时候进行补充长度。如果我们想补充更长调整2为其他数字就可以了,在String进行格式化的时候会根据这个值判断整数长度是否满足,不够的就会补0。

6行代码,实现转00:00:00格式。同时交代了计算逻辑

疑问

上面的计算中,秒值如果是外部输入的情况。需要判断是否为0 么?

答案是:不需要。数学公式计算中被除数是可以为0的,只是除数不能为0。

在上面的例子中,3600 和60 才是除数。

希望能够帮助大家弄明白转换的逻辑。

0 人点赞