title: java.text.ParseException while trying to parse a date in java
body: <p>I can not parse the string "16 Apr 2014 17:00" as a string. I've trying to use <code>DateUtils</code> in <code>apachecommons</code> library. here is the test code with the exception</p>
  
  <pre><code>package com.buraktas;
  
  import java.text.ParseException;
  import java.util.Date;
  
  import org.apache.commons.lang3.time.DateUtils;
  import org.junit.Test;
  
  public class ParseDateTest {
  
      @Test
      public void test() throws ParseException {
  
          String date = "18 Apr 2014 20:00";
          Date parseDate = DateUtils.parseDate(date, "dd MMM yyyy HH:mm");
  
          System.out.println(parseDate);
      }
  }
  </code></pre>
  
  <p>and the stacktrace is like below;</p>
  
  <pre><code>java.text.ParseException: Unable to parse the date: 18 Apr 2014 20:00
      at org.apache.commons.lang3.time.DateUtils.parseDateWithLeniency(DateUtils.java:391)
      at org.apache.commons.lang3.time.DateUtils.parseDate(DateUtils.java:291)
      at org.apache.commons.lang3.time.DateUtils.parseDate(DateUtils.java:268)
      at com.buraktas.ParseDateTest.test(ParseDateTest.java:15)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
  </code></pre>
  
  <p>EDIT: The thing is I have to setup default locale to en_US even my JVM shows that my default is en _US. Here is the code.</p>
  
  <pre><code>@Test
  public void testParse2() throws Exception {
  
      System.out.println(Locale.getDefault());
  
      String date = "18 Apr 2014 20:00";
      Locale.setDefault(Locale.ENGLISH);
  
      Date parseDate = DateUtils.parseDate(date, new String[] { "dd MMM yyyy HH:mm" });
      System.out.println(parseDate);
  
  }
  </code></pre>
  
  <p>and the output is</p>
  
  <pre><code>en_US
  Fri Apr 18 20:00:00 EEST 2014
  </code></pre>