code: public static Date iso8601ToDate(final String dateString) 
          throws ParseException
          {
          final SimpleDateFormat df = 
              new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
          
          // We need to manually parse ISO 8601s ":".
          final String str = StringUtils.substringBeforeLast(dateString, ":") +
              StringUtils.substringAfterLast(dateString, ":");
          return df.parse(str);
          }
docs: Converts the specified string in ISO 8601 format to a {@link Date}
  instance.
  
  @param dateString The string to convert.
  @return The {@link Date} instance.
  @throws ParseException If the date could not be parsed.