秒数怎么转时:分:秒

  先看代码,我这里只给出main方法直接跑起来看:

public static void main(String[] args)
    {
        long totalDuration = 62907;
        String audioDuration = null;
        if (totalDuration >= 0)
        {
            
            SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); // 24小时制
            
            // 1、当前系统默认时区,按时分秒格式化
            audioDuration = formatter.format(totalDuration * 1000);
            System.out.printf("当前时区: %s\n", audioDuration);
            
            System.out.printf("当前时区与格林尼治相差%s个小时\n", TimeZone.getDefault().getRawOffset() / (3600 * 1000));
            // 2、当前系统默认时区转换为GMT时区,按时分秒格式化
            audioDuration = formatter.format(totalDuration * 1000 - TimeZone.getDefault().getRawOffset());
            System.out.printf("格林尼治时区: %s\n", audioDuration);
            
            formatter = new SimpleDateFormat("hh:mm:ss"); // 12小时制
            // 当前系统默认时区转换为GMT时区,按时分秒格式化
            audioDuration = formatter.format(totalDuration * 1000 - TimeZone.getDefault().getRawOffset());
            System.out.printf("格林尼治时区: %s\n", audioDuration);
        }
        
    }

  运行结果:

当前时区: 01:28:27
当前时区与格林尼治相差8个小时
格林尼治时区: 17:28:27
格林尼治时区: 05:28:27

  可以看到,当前是中国的北京时区,62907秒转换后是凌晨1点28分27秒,而格林尼治时间晚我们8个小时,所以他们当前才下午5点。

  我们这里并不是转换日期,而是把累计起来的秒数转换为时分秒格式,直接计算很明显62907是17小时28分27秒 (直接拿62907去除3600),所以我们不能按当前时区转,也不能按12小时制转,只能按GMT时区的24小时制转。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值