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

问题描述

我使用 DF <- structure(list(id1 = 101:109,id2 = c(NA,101L,102L,103L,NA,107L,NA),date = c("01.1.2021","12.1.2021","17.1.2021","18.1.2021","25.1.2021","03.1.2021","10.1.2021","11.1.2021","09.1.2021")),class = "data.frame",row.names = c(NA,-9L)) 格式在 java 中打印小时和分钟。它将以格式给出时间 HH:mm05:12。但我的要求是获得个位数的小时数:

00:04

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

05:12 => 5:12
00:04 => 0:04  
10:18 => 10:18

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

解决方法

DateTimeFormatterdocs 说:

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

因此,只需将模式从 HH:mm 更改为 H:mm

,
DateTimeFormatter.ofPattern("H:mm").format(LocalTime.now())