This is an automated email from the ASF dual-hosted git repository.

garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-beanutils.git


The following commit(s) were added to refs/heads/master by this push:
     new cdfcb331 Pass configured locale to SimpleDateFormat in 
DateTimeConverter (#421)
cdfcb331 is described below

commit cdfcb331607086943bb88be659f1f31a7a5f42ba
Author: Naveed Khan <[email protected]>
AuthorDate: Sat Jul 18 20:54:38 2026 +0000

    Pass configured locale to SimpleDateFormat in DateTimeConverter (#421)
    
    * pass configured locale to date pattern in DateTimeConverter
    
    * use junit pioneer to set the default locale in testLocaleWithPattern
---
 pom.xml                                                 |  5 +++++
 .../beanutils2/converters/DateTimeConverter.java        |  2 +-
 .../converters/AbstractDateConverterTest.java           | 17 +++++++++++++++++
 3 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 244d49b5..99e8910d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -120,6 +120,11 @@
       <artifactId>junit-jupiter</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.junit-pioneer</groupId>
+      <artifactId>junit-pioneer</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>
diff --git 
a/src/main/java/org/apache/commons/beanutils2/converters/DateTimeConverter.java 
b/src/main/java/org/apache/commons/beanutils2/converters/DateTimeConverter.java
index c08de17e..dd426d05 100644
--- 
a/src/main/java/org/apache/commons/beanutils2/converters/DateTimeConverter.java
+++ 
b/src/main/java/org/apache/commons/beanutils2/converters/DateTimeConverter.java
@@ -293,7 +293,7 @@ public abstract class DateTimeConverter<D> extends 
AbstractConverter<D> {
      * @return The DateFormat
      */
     private DateFormat getFormat(final String pattern) {
-        final DateFormat format = new SimpleDateFormat(pattern);
+        final DateFormat format = locale == null ? new 
SimpleDateFormat(pattern) : new SimpleDateFormat(pattern, locale);
         if (timeZone != null) {
             format.setTimeZone(timeZone);
         }
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/AbstractDateConverterTest.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/AbstractDateConverterTest.java
index 0e55f7b1..48bc622a 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/AbstractDateConverterTest.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/AbstractDateConverterTest.java
@@ -42,6 +42,7 @@ import java.util.Objects;
 import org.apache.commons.beanutils2.ConversionException;
 import org.apache.commons.beanutils2.Converter;
 import org.junit.jupiter.api.Test;
+import org.junitpioneer.jupiter.DefaultLocale;
 
 /**
  * Abstract base for &lt;Date&gt;Converter classes.
@@ -268,6 +269,22 @@ public abstract class AbstractDateConverterTest<T> {
         Locale.setDefault(defaultLocale);
     }
 
+    /**
+     * Test that a configured Locale is honored when a pattern is also set.
+     */
+    @Test
+    @DefaultLocale(language = "en", country = "US")
+    void testLocaleWithPattern() {
+        // The default Locale's month names differ from the configured 
Locale's.
+        final String pattern = "dd MMMM yyyy"; // month name is 
Locale-sensitive
+        final DateTimeConverter<T> converter = makeConverter();
+        converter.setLocale(Locale.GERMANY);
+        converter.setPattern(pattern);
+        final String testString = "28 Oktober 2006";
+        final Object expected = toType(testString, pattern, Locale.GERMANY);
+        validConversion(converter, expected, testString);
+    }
+
     /**
      * Test Converter with multiple patterns
      */

Reply via email to