看例子:
yyyy-MM-dd -> java.time.temporal.ChronoUnit.DAYS
yyyy-MM-dd HH -> java.time.temporal.ChronoUnit.HOURS
yyyy;HH;ss -> java.time.temporal.ChronoUnit.SECONDS
yyyy;dd;MM -> java.time.temporal.ChronoUnit.DAYS
是否有 API 可以从日期时间字符串格式中获取最低计时单位?
最佳答案
您可以尝试解析预定日期并检查哪些单位具有值。我在下面写了一个简单的例子,输出:
yyyy-MM-dd Days
yyyy-MM-dd HH Hours
yyyy;HH;ss Seconds
yyyy;dd;MM ss n Nanos
笔记:
public static void main(String[] args) {
String[] formats = { "yyyy-MM-dd", "yyyy-MM-dd HH", "yyyy;HH;ss", "yyyy;dd;MM ss n" };
LocalDateTime test = LocalDateTime.of(1, 1, 1, 1, 1, 1, 1);
for (String f : formats) {
DateTimeFormatter format = DateTimeFormatter.ofPattern(f);
TemporalAccessor accessor = format.parse(test.format(format));
for (ChronoField unit : ChronoField.values()) {
if (testUnit(accessor, unit)) {
System.out.println(f + " " + unit.getBaseUnit());
break;
}
}
}
}
private static boolean testUnit(TemporalAccessor accessor, ChronoField unit) {
return accessor.isSupported(unit) && accessor.getLong(unit) == 1;
}
关于java - 如何从日期格式中获得最低的计时单位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62404701/