gpt4 book ai didi

time - 如何区分 LocalDateTime 中何时缺少 "second field"

转载 作者:行者123 更新时间:2023-12-01 11:20:16 25 4
gpt4 key购买 nike

给我LocalDateTimeString 创建的对象.我想检查该原始字符串是否具有“seconds”参数。
我的两个输入是:

String a = "2016-06-22T10:01"; //not given
String b = "2016-06-22T10:01:00"; //not given

LocalDateTime dateA = LocalDateTime.parse(a, DateTimeFormatter.ISO_DATE_TIME);
LocalDateTime dateB = LocalDateTime.parse(b, DateTimeFormatter.ISO_DATE_TIME);

问题是我给了 dateAdateB ,不是 ab .

我尝试了各种方法,例如转换 LocalDateTimeString并找到它的长度。为此,我使用了两种方法。
date.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME).length();
date.toString().length();

但是第一种方法为 dateA 提供了长度 19和 dateB而第二种方法为 dateA 都给出了长度 16和 dateB .

我找不到任何方法来区分 dateAdateB .

最佳答案

正如其他人已经说过的,LocalDateTime -object 总是有第二部分。另一个问题是 如果原始输入有第二部分 .仅用 Java-8-means 就可以找到答案(但它很难看,因为它基于异常控制流):

String a = "2016-06-22T10:01"; // not given
String b = "2016-06-22T10:01:00"; // given

boolean hasSecondPart;
try {
TemporalAccessor tacc =
DateTimeFormatter.ISO_DATE_TIME.parseUnresolved(a, new ParsePosition(0));
tacc.get(ChronoField.SECOND_OF_MINUTE);
hasSecondPart = true;
} catch (UnsupportedTemporalTypeException ex) {
hasSecondPart = false;
}
System.out.println(hasSecondPart); // true for input b, false for input a

边注:

使用我的库 Time4J 可以无异常检查字符串输入是否有第二部分使用此代码:
boolean hasSecondPart =
Iso8601Format.EXTENDED_DATE_TIME.parseRaw(a).contains(PlainTime.SECOND_OF_MINUTE);

关于time - 如何区分 LocalDateTime 中何时缺少 "second field",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44716151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com