Seeing that this timestamp format provided looks like the standard format used in XML, you could try the following:  
public static void main(String[] args) throws DatatypeConfigurationException {
    String inDate = "2011-03-16T09:00:00-05:00";
    javax.xml.datatype.DatatypeFactory factory = DatatypeFactory.newInstance();
    javax.xml.datatype.XMLGregorianCalendar xmlGregCal = factory.newXMLGregorianCalendar(inDate);
    java.util.GregorianCalendar gregCal = xmlGregCal.toGregorianCalendar();
    java.util.Date dateObj = gregCal.getTime();
    System.out.println("cal = " + xmlGregCal.toString());
    System.out.println("cal.year = " + xmlGregCal.getYear());
    System.out.println("cal.month = " + xmlGregCal.getMonth());
    System.out.println("cal.day = " + xmlGregCal.getDay());
    System.out.println("cal.hour = " + xmlGregCal.getHour());
    System.out.println("cal.minute = " + xmlGregCal.getMinute());
    System.out.println("cal.second = " + xmlGregCal.getSecond());
    System.out.println("cal.timezone = " + xmlGregCal.getTimezone());
    System.out.println("cal.eonAndYear = " + xmlGregCal.getEonAndYear());
}
The output created is as follows:  
cal = 2011-03-16T09:00:00-05:00
  cal.year = 2011
  cal.month = 3
  cal.day = 16
  cal.hour = 9
  cal.minute = 0
  cal.second = 0
  cal.timezone = -300
  cal.eonAndYear = 2011