title: Android parse String to Date - unknown pattern character 'X'
body: <p>I have <code>Service</code> fetch date string from web and then I want to pare it to <code>Date</code> object. But somehow application crashes.
  This is my string that I'm parsing: <code>2015-02-05T05:20:02+00:00</code></p>
  
  <p><strong>onStartCommand()</strong></p>
  
  <pre><code>String datetime = "2015-02-05T05:20:02+00:00";
  Date new_date = stringToDate(datetime);
  </code></pre>
  
  <p><strong>stringToDate()</strong></p>
  
  <pre><code>private Date stringToDate(String s){
      DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
      try{
          return df.parse(s);
      }catch(ParseException e){
          e.printStackTrace();
      }
      return null;
  }
  </code></pre>
  
  <p><strong>LogCat:</strong></p>
  
  <pre><code>02-06 20:37:02.008: E/AndroidRuntime(28565): FATAL EXCEPTION: main
  02-06 20:37:02.008: E/AndroidRuntime(28565): Process: com.dotmav.runescapenotifier, PID: 28565
  02-06 20:37:02.008: E/AndroidRuntime(28565): java.lang.RuntimeException: Unable to start service com.dotmav.runescapenotifier.GEService@384655b5 with Intent { cmp=com.dotmav.runescapenotifier/.GEService }: java.lang.IllegalArgumentException: Unknown pattern character 'X'
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2881)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at android.app.ActivityThread.access$2100(ActivityThread.java:144)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1376)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at android.os.Handler.dispatchMessage(Handler.java:102)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at android.os.Looper.loop(Looper.java:135)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at android.app.ActivityThread.main(ActivityThread.java:5221)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at java.lang.reflect.Method.invoke(Native Method)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at java.lang.reflect.Method.invoke(Method.java:372)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
  02-06 20:37:02.008: E/AndroidRuntime(28565): Caused by: java.lang.IllegalArgumentException: Unknown pattern character 'X'
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at java.text.SimpleDateFormat.validatePatternCharacter(SimpleDateFormat.java:314)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at java.text.SimpleDateFormat.validatePattern(SimpleDateFormat.java:303)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at java.text.SimpleDateFormat.&lt;init&gt;(SimpleDateFormat.java:356)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at java.text.SimpleDateFormat.&lt;init&gt;(SimpleDateFormat.java:249)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at com.dotmav.runescapenotifier.GEService.stringToDate(GEService.java:68)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at com.dotmav.runescapenotifier.GEService.onStartCommand(GEService.java:44)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2864)
  02-06 20:37:02.008: E/AndroidRuntime(28565):    ... 9 more
  </code></pre>
  
  <p><strong>EDIT:</strong> onDestroy() set alarm for periodical update...</p>
  
  <pre><code>AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE);
  alarm.set(
      AlarmManager.RTC_WAKEUP,
      System.currentTimeMillis() + (1000 * 60),
      PendingIntent.getService(this, 0, new Intent(this, GEService.class), 0)
  );
  </code></pre>