diff --git a/org.eclipse.sisu.plexus.tests/src/org/eclipse/sisu/plexus/DateConstantTest.java b/org.eclipse.sisu.plexus.tests/src/org/eclipse/sisu/plexus/DateConstantTest.java
index 47f019b..cd50cfb 100644
--- a/org.eclipse.sisu.plexus.tests/src/org/eclipse/sisu/plexus/DateConstantTest.java
+++ b/org.eclipse.sisu.plexus.tests/src/org/eclipse/sisu/plexus/DateConstantTest.java
@@ -12,6 +12,7 @@
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Locale;
 
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -72,12 +73,12 @@
 
     public void testDateFormat1()
     {
-        assertEquals( dateText1, new SimpleDateFormat( "yyyy-MM-dd h:mm:ss.S a" ).format( date1 ) );
+        assertEquals( dateText1, new SimpleDateFormat( "yyyy-MM-dd h:mm:ss.S a", Locale.US ).format( date1 ) );
     }
 
     public void testDateFormat2()
     {
-        assertEquals( dateText2, new SimpleDateFormat( "yyyy-MM-dd h:mm:ssa" ).format( date2 ) );
+        assertEquals( dateText2, new SimpleDateFormat( "yyyy-MM-dd h:mm:ssa", Locale.US ).format( date2 ) );
     }
 
     public void testBadDateFormat()
diff --git a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusDateTypeConverter.java b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusDateTypeConverter.java
index afb2e44..a6bcfff 100644
--- a/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusDateTypeConverter.java
+++ b/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusDateTypeConverter.java
@@ -14,6 +14,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Locale;
 
 import com.google.inject.Binder;
 import com.google.inject.Module;
@@ -32,9 +33,11 @@
     // Constants
     // ----------------------------------------------------------------------
 
-    private static final DateFormat[] PLEXUS_DATE_FORMATS = { new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss.S a" ),
-        new SimpleDateFormat( "yyyy-MM-dd hh:mm:ssa" ), new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss.S" ),
-        new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ) };
+    private static final DateFormat[] PLEXUS_DATE_FORMATS = {
+        new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss.S a", Locale.US ),
+        new SimpleDateFormat( "yyyy-MM-dd hh:mm:ssa", Locale.US ),
+        new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss.S", Locale.US ),
+        new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss", Locale.US ) };
 
     private static final String CONVERSION_ERROR = "Cannot convert: \"%s\" to: %s";
 
