如何在 Java 中自定义 HH:mm 格式

Man*_*rek -1 java time-format localtime timeofday java-time

我正在使用HH:mm格式在 java 中打印小时和分钟。它会给格式的时间 05:1200:04。但我的要求是获得个位数的小时数:

05:12 => 5:12
00:04 => 0:04  
10:18 => 10:18
Run Code Online (Sandbox Code Playgroud)

下面我有我正在运行以生成日期的代码,

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class TestDateUtil {

    public static void main(String ar[]) {
        LocalTime time = LocalTime.now();
        String t = time.format(DateTimeFormatter.ofPattern("HH:mm"));
        System.out.println(t);  

    }
} 
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用字符串操作在 : 的基础上进行时间分割,然后改变它,但这也需要更多的条件检查变化,我不想这样做。有什么办法吗?

QBr*_*ute 6

文档DateTimeFormatter说:

数字:如果字母数为1,则使用最小位数输出该值,不填充。否则,将使用数字计数作为输出字段的宽度,并根据需要填充零值。以下模式字母对字母数有限制。只能指定一个字母 'c' 和 'F'。最多可以指定两个字母“d”、“H”、“h”、“K”、“k”、“m”和“s”。最多可以指定三个字母“D”。

因此,只需将您的模式从 更改HH:mmH:mm