A genuine joda answer with corrected pattern string and explicit Locale
:
String input = "21-Mar-2014";
DateTimeFormatter dtf = DateTimeFormat.forPattern("dd-MMM-yyyy").withLocale(Locale.ENGLISH);
DateTime dt = dtf.parseDateTime(input); // using the default time zone
System.out.println(dt); // 2014-03-21T00:00:00.000+01:00 (my zone: Europe/Berlin)
If you don't need time part (regarding your input!) then I recommend to use:
LocalDate date = dtf.parseLocalDate(input);