gpt4 book ai didi

java - 从传递的对象中获取正确的时间类型

转载 作者:行者123 更新时间:2023-12-01 18:03:22 25 4
gpt4 key购买 nike

有没有办法确定传递对象的时间类型?目前,我有一个 Temporal 参数,它将 Temporal 转换为 LocalDate 并返回 LocalDate 对象。

假设我在此 Temporal 参数中传递 LocalDateTime,该方法将引发异常。

有没有办法找出传递的时间类型?

最佳答案

我不知道您是如何转换为 LocalDate 的。我相信这个是有效的。

/**
* @throws DateTimeException if the <code>Temporal</code> hasn’t got
* enough supported fields for a <code>LocalDate</code>.
*/
public static LocalDate convertToLocalDate(Temporal t) {
return LocalDate.from(t);
}

接受 LocalDateTime 没有问题:

    LocalDateTime ldt = LocalDateTime.now(ZoneId.of("Asia/Qyzylorda"));
System.out.println("As LocalDate: " + convertToLocalDate(ldt));

当我刚才运行此代码时,我得到了以下输出:

As LocalDate: 2020-03-13

当然,它根本不适用于任何Temporal

    convertToLocalDate(Year.of(2021));
Exception in thread "main" java.time.DateTimeException: Unable to obtain LocalDate from TemporalAccessor: 2021 of type java.time.Year
at java.base/java.time.LocalDate.from(LocalDate.java:396)
at com.ajax.Demo.convertToLocalDate(ConvertTemporalToLocalDate.java:18)
at com.ajax.Demo.main(ConvertTemporalToLocalDate.java:25)

关于java - 从传递的对象中获取正确的时间类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60597737/

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