Skip to content

Commit 7f9901d

Browse files
committed
Merge branch '6.1.x'
2 parents 25e2c1b + bfde33a commit 7f9901d

File tree

4 files changed

+41
-7
lines changed

4 files changed

+41
-7
lines changed

framework-docs/modules/ROOT/pages/core/validation/format.adoc

+25-3
Original file line numberDiff line numberDiff line change
@@ -282,10 +282,10 @@ Kotlin::
282282
A portable format annotation API exists in the `org.springframework.format.annotation`
283283
package. You can use `@NumberFormat` to format `Number` fields such as `Double` and
284284
`Long`, `@DurationFormat` to format `Duration` fields in ISO8601 and simplified styles,
285-
and `@DateTimeFormat` to format `java.util.Date`, `java.util.Calendar`, `Long`
286-
(for millisecond timestamps) as well as JSR-310 `java.time`.
285+
and `@DateTimeFormat` to format fields such as `java.util.Date`, `java.util.Calendar`,
286+
and `Long` (for millisecond timestamps) as well as JSR-310 `java.time` types.
287287

288-
The following example uses `@DateTimeFormat` to format a `java.util.Date` as an ISO Date
288+
The following example uses `@DateTimeFormat` to format a `java.util.Date` as an ISO date
289289
(yyyy-MM-dd):
290290

291291
[tabs]
@@ -311,6 +311,28 @@ Kotlin::
311311
----
312312
======
313313

314+
For further details, see the javadoc for
315+
{spring-framework-api}/format/annotation/DateTimeFormat.html[`@DateTimeFormat`] and
316+
{spring-framework-api}/format/annotation/NumberFormat.html[`@NumberFormat`].
317+
318+
[WARNING]
319+
====
320+
Style-based formatting and parsing rely on locale-sensitive patterns which may change
321+
depending on the Java runtime. Specifically, applications that rely on date, time, or
322+
number parsing and formatting may encounter incompatible changes in behavior when running
323+
on JDK 20 or higher.
324+
325+
Using an ISO standardized format or a concrete pattern that you control allows for
326+
reliable system-independent and locale-independent parsing and formatting of date, time,
327+
and number values.
328+
329+
For `@DateTimeFormat`, the use of fallback patterns can also help to address
330+
compatibility issues.
331+
332+
For further details, see the
333+
https://github.com/spring-projects/spring-framework/wiki/Date-and-Time-Formatting-with-JDK-20-and-higher[Date and Time Formatting with JDK 20 and higher]
334+
page in the Spring Framework wiki.
335+
====
314336

315337
[[format-FormatterRegistry-SPI]]
316338
== The `FormatterRegistry` SPI

framework-docs/modules/ROOT/pages/web/webflux/config.adoc

+2-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ class WebConfig : WebFluxConfigurer {
9494
[.small]#xref:web/webmvc/mvc-config/conversion.adoc[See equivalent in the Servlet stack]#
9595

9696
By default, formatters for various number and date types are installed, along with support
97-
for customization via `@NumberFormat`, `@DurationFormat` and `@DateTimeFormat` on fields.
97+
for customization via `@NumberFormat`, `@DurationFormat`, and `@DateTimeFormat` on fields
98+
and parameters.
9899

99100
To register custom formatters and converters in Java config, use the following:
100101

framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/conversion.adoc

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
[.small]#xref:web/webflux/config.adoc#webflux-config-conversion[See equivalent in the Reactive stack]#
55

66
By default, formatters for various number and date types are installed, along with support
7-
for customization via `@NumberFormat`, `@DurationFormat` and `@DateTimeFormat` on fields.
7+
for customization via `@NumberFormat`, `@DurationFormat`, and `@DateTimeFormat` on fields
8+
and parameters.
89

910
To register custom formatters and converters, use the following:
1011

spring-context/src/main/java/org/springframework/format/annotation/DateTimeFormat.java

+12-2
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,27 @@
2828
* <p>Formatting applies to parsing a date/time object from a string as well as printing a
2929
* date/time object to a string.
3030
*
31-
* <p>Supports formatting by style pattern, ISO date time pattern, or custom format pattern string.
31+
* <p>Supports formatting by style pattern, ISO date/time pattern, or custom format pattern string.
3232
* Can be applied to {@link java.util.Date}, {@link java.util.Calendar}, {@link Long} (for
3333
* millisecond timestamps) as well as JSR-310 {@code java.time} value types.
3434
*
3535
* <p>For style-based formatting, set the {@link #style} attribute to the desired style pattern code.
3636
* The first character of the code is the date style, and the second character is the time style.
3737
* Specify a character of 'S' for short style, 'M' for medium, 'L' for long, and 'F' for full.
38-
* The date or time may be omitted by specifying the style character '-' &mdash; for example,
38+
* The date or time may be omitted by specifying the style character '-'. For example,
3939
* 'M-' specifies a medium format for the date with no time. The supported style pattern codes
4040
* correlate to the enum constants defined in {@link java.time.format.FormatStyle}.
4141
*
42+
* <p><strong>WARNING</strong>: Style-based formatting and parsing rely on locale-sensitive
43+
* patterns which may change depending on the Java runtime. Specifically, applications that
44+
* rely on date/time parsing and formatting may encounter incompatible changes in behavior
45+
* when running on JDK 20 or higher. Using an ISO standardized format or a concrete pattern
46+
* that you control allows for reliable system-independent and locale-independent parsing and
47+
* formatting of date/time values. The use of {@linkplain #fallbackPatterns() fallback patterns}
48+
* can also help to address compatibility issues. For further details, see the
49+
* <a href="https://github.com/spring-projects/spring-framework/wiki/Date-and-Time-Formatting-with-JDK-20-and-higher">
50+
* Date and Time Formatting with JDK 20 and higher</a> page in the Spring Framework wiki.
51+
*
4252
* <p>For ISO-based formatting, set the {@link #iso} attribute to the desired {@link ISO} format,
4353
* such as {@link ISO#DATE}.
4454
*

0 commit comments

Comments
 (0)