Java时间格式作为时间对象返回

Java时间格式作为时间对象返回,java,datetime,java-8,datetime-format,Java,Datetime,Java 8,Datetime Format,如果我这样做: ZonedDateTime.now().format(DateTimeFormatter.BASIC_ISO_DATE) 它返回一个字符串,而我希望它返回一个ZoneDateTime对象。有没有一个干净的方法可以做到这一点。这是显而易见的解决方案: ZonedDateTime.parse(ZonedDateTime.now().format(DateTimeFormatter.BASIC_ISO_DATE)); 有没有更简单的方法?这似乎有点太冗长了。只需使用zoneDate

如果我这样做:

ZonedDateTime.now().format(DateTimeFormatter.BASIC_ISO_DATE)
它返回一个
字符串
,而我希望它返回一个
ZoneDateTime
对象。有没有一个干净的方法可以做到这一点。这是显而易见的解决方案:

ZonedDateTime.parse(ZonedDateTime.now().format(DateTimeFormatter.BASIC_ISO_DATE));

有没有更简单的方法?这似乎有点太冗长了。

只需使用
zoneDateTime.now()


来源:

Hum,
ZoneDateTime.now()怎么样?
ZoneDateTime
没有格式。你所要求的只是
ZoneDateTime.now()
。是的,但我想用我想要的格式格式化它。我可以选择任何
DateTimeFormatter
,它将基于该格式返回。我已经用多种格式对此进行了测试,并根据我使用的格式得到了多个返回值chose@Richard听起来好像您没有区分
ZoneDateTime
和格式化输出。当您需要将其传递到程序外部或向用户公开时,您应该使用
ZonedDateTime
而不在程序内部使用任何格式,然后使用
DateTimeFormatter
。此问题与以下问题之间是否有区别:这不是我想要的。我希望能够控制它在中返回
.now()
的格式。我可以使用
.format
选项来实现这一点;我已经测试过选择多种格式,它的工作方式和我想要的一样。以各种格式返回日期。现在,我想将该格式作为zoneddatetime对象而不是字符串返回,因为
.format()
方法返回一个stringas@Louis说,我认为您应该使用zoneddatetime,而不在内部使用任何格式program@Richard那没有任何意义。
ZoneDateTime
对象中没有格式。只有将
ZonedDateTime
转换为
字符串时才有格式is@Richard,是的,还有?
zoneDateTime
类似于
int
:数字16和0x10是相同的,但
int
只是一个数字,没有任何格式。只有将
int
转换为
字符串时才有格式。