Java 将LocalDateTime对象转换为LocalDateTime

Java 将LocalDateTime对象转换为LocalDateTime,java,datetime,java-8,Java,Datetime,Java 8,我是Java新手,正在从事Java8的工作 我正在尝试将LocalDateTime对象转换为LocalDateTime,但如果不将其转换为字符串,则无法找到任何方法。当底层对象类型为LocalDateTime时,是否有直接方法将对象转换为LocalDateTime 此外,如果有任何转换方法,它也可以用于底层字符串类型的LocalDateTime对象吗 下面是我当前的代码,它将对象转换为字符串,然后再转换为LocalDateTime,因为LocalDateTime.parse方法需要字符串输入 p

我是Java新手,正在从事Java8的工作

我正在尝试将LocalDateTime对象转换为LocalDateTime,但如果不将其转换为字符串,则无法找到任何方法。当底层对象类型为LocalDateTime时,是否有直接方法将对象转换为LocalDateTime

此外,如果有任何转换方法,它也可以用于底层字符串类型的LocalDateTime对象吗

下面是我当前的代码,它将对象转换为字符串,然后再转换为LocalDateTime,因为LocalDateTime.parse方法需要字符串输入

public static LocalDateTime toDateTime(Object dateTimeObject) {
    LocalDateTime dateTime = LocalDateTime.parse(dateTimeObject.toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"));
    
    return dateTime;
}

根据,没有方法接受对象参数并返回LocalDateTime。但是有一个接受CharSequence参数,这就是为什么在将对象转换为字符串时它可以工作,以及为什么如果只传递对象参数它就不能工作。如果您不想调用toString()方法,可能toDateTime(对象o)的参数应该是另一种类型。

如果对象是
LocalDateTime
,您可以强制转换该对象

public static LocalDateTime toDateTime(Object dateTimeObject) {
    if (dateTimeObject instanceof LocalDateTime) {
        return (LocalDateTime) dateTimeObject;
    }
    return null;
}

到底是什么不起作用?您是否收到错误/异常消息?如果是,请回答您的问题并包括调试细节。
对象
字符串
还是
本地日期时间
?对于后者,您可以尝试强制转换它,如
LocalDateTime dateTime=(LocalDateTime)dateTime对象。但这似乎有点奇怪。。。为什么,如果您知道参数将是一个
LocalDateTime
,那么您是否使用
Object
作为参数类型?您所说的
将LocalDateTime对象转换为LocalDateTime
是什么意思?您能否举例说明如何使用
toDateTime()
方法(预期的输入和预期的结果是什么)?如果
对象dateTimeObject
实际上是一个
LocalDateTime
,您只需将其强制转换为:
LocalDateTime dateTime=(LocalDateTime)dateTimeObject
,正如德哈尔已经提到的那样。否则,如果该对象是任意类的某个实例,则必须定义转换规则才能进行转换。@deHaar:感谢您指出了正确的方向。这就是我面临的实际问题。我在对象中获取LocalDateTime,所以我在想,既然已经是LocalDateTime,为什么还要转换为string。糟糕的是,我认为LocalDateTime dateTime=(LocalDateTime)dateTime对象在这种情况下不应该工作。然而,在挖掘代码之后,我发现在少数情况下,我也可以将其作为字符串获取,因此我也需要处理它。因此,我已经更新了我的代码来处理字符串类型的对象,使用了问题中提到的代码和您提到的直接强制转换技术。我已经编辑了问题,清楚地提到了我的困惑。目前它已经关闭,但它重新打开,我将发布我的更新代码作为答案,以帮助其他人在同样的情况下。