Raised by @wimdeblauwe on Gitter, if you use LocalTime in a @ConfigurationProperties class it is converted using the system locale, whereas conversion to Duration and Period is always done using ISO-8601. We document the behaviour for Duration and Period. This created an expectation that LocalTime and the like would be treated in the same way. The inconsistency of them being treated differently was then unexpected.

Comment From: wimdeblauwe

This is the relevant SO question about it that contains the configuration that is needed to make it work as I would expect: https://stackoverflow.com/q/61911328/40064

Comment From: wilkinsona

We should check if the current behaviour has changed due to the changes in Framework for https://github.com/spring-projects/spring-framework/issues/26985.

Comment From: wilkinsona

The changes in https://github.com/spring-projects/spring-framework/issues/26985 have fixed this. When the current locale causes the parsing to fail, Framework now falls back to ISO-8601-based parsing. This means that an input like 06:00 can always be converted to a LocalTime irrespective of the locale. This applies to all TemporalAccessor types.