Affects: 5.3.7

Currently DateTimeFormatterRegistrar behavior is different from default JDK

For example, given OffsetDateTime.parse(XXX), if XXX can be parsed this way, it should be parsed by DateTimeFormatterRegistrar too.

Comment From: sbrannen

Please note that changing the current behavior would be a breaking change.

The documentation for DateTimeFormatterRegistrar states that it does not use ISO formatting by default, but that can be changed via DateTimeFormatterRegistrar#setUseIsoFormat(true).

Can you please provide more information regarding your exact use case?

Comment From: abccbaandy

Yes, I know setUseIsoFormat. I create this issue to discussion is there any chance to change it to true by default.

The reason I already said in first comment. This option should be true by default.

About my real use case : I use RFC 3339 format in all time field in my rest api. It work well with json(jackson) without any config, the default config is good and standard. But when use it in query parameter, it fail.

Comment From: sbrannen

But when use it in query parameter, it fail.

Have you tried annotating the corresponding parameter of your controller method with @DateTimeFormat(iso = ISO.DATE_TIME)?

Comment From: abccbaandy

Yes, I can do that, but I want make it default without any config.

Comment From: sbrannen

Thanks for the feedback, @abccbaandy.

Since changing the default would be a breaking change, we will revisit this topic for Spring Framework 6.

Comment From: jhoeller

I've slightly repurposed this issue for revisiting our fallback parsing behavior there. Based on the scenario described above, we should indeed leniently accept the default parse format of every java.time type.

This is different from switching useIsoFormat to true since that affects printing as well and generally bypasses other style settings. Also, this new ISO fallback behavior only kicks in if no fallback patterns have been specified, so it's easy to bypass.

Comment From: jhoeller

Related enhancements in 6.0: #1215, #19846