You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何将数字格式化为XX:00形式?

嘿,这个需求很容易实现,我给你分享几种实用的方法,不管是int还是double类型都能轻松搞定:

方法一:用String.format快速格式化

这是最简洁直接的方式,不管你是整数还是浮点数,先提取出数字的整数部分,再拼接:00即可。如果需要统一的两位数字格式(比如9变成09:00),还能自动补前导零:

// 处理int类型
int intHour = 12;
String formattedInt = String.format("%02d:00", intHour);
System.out.println(formattedInt); // 输出 12:00

// 处理double类型(这里以直接截断小数为例,你可以按需调整取整逻辑)
double doubleHour = 12.0;
// 强转成int会直接截断小数,也可以用Math.floor(向下取整)或Math.round(四舍五入)
String formattedDouble = String.format("%02d:00", (int) doubleHour);
System.out.println(formattedDouble); // 输出 12:00

// 补充:单个数字的场景,%02d会自动补零
int singleHour = 9;
String formattedSingle = String.format("%02d:00", singleHour);
System.out.println(formattedSingle); // 输出 09:00

方法二:用DecimalFormat(适合复杂数字格式场景)

如果你需要更精细的数字格式化控制,比如自定义舍入规则,可以用DecimalFormat先把数字转成规范的整数字符串,再拼接:00:

import java.text.DecimalFormat;
import java.math.RoundingMode;

public class Main {
    public static void main(String[] args) {
        DecimalFormat df = new DecimalFormat("00"); // 确保输出两位数字,不足补零
        df.setRoundingMode(RoundingMode.FLOOR); // 设置向下取整,避免四舍五入
        
        int intHour = 12;
        String formattedInt = df.format(intHour) + ":00";
        System.out.println(formattedInt); // 12:00
        
        double doubleHour = 12.9;
        String formattedDouble = df.format(doubleHour) + ":00";
        System.out.println(formattedDouble); // 12:00(因为设置了向下取整)
    }
}

关键注意点

  • 处理double类型时,一定要明确你的取整需求:是直接截断小数(强转int)、向下取整(Math.floor)还是四舍五入(Math.round),不同方式会得到不同结果。
  • 如果不需要两位数字的格式,把%02d换成%d即可,比如9会输出9:00。

内容的提问来源于stack exchange,提问作者Felippe Trigueiro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:14:10