Ваш ответ правильный на деньги.Я поместил его в полную программу и протестировал.
Теперь он печатает
Default date format Fri Mar 30 00:00:00 CDT 2012
Our SimpleDateFormat 30-Mar-2012
Our SimpleDateFormat with all uppercase 30-MAR-2012
Вот несколько советов:
- Убедитесь, что вы включаете правильный импорт,В зависимости от того, что находится в вашем classpath, вы можете случайно импортировать java.sql.Date или какой-либо другой мошеннический импорт.
- Попробуйте распечатать содержимое birthDate перед входом в блок try и убедитесь, что оно действительно содержит строку формата dd-MMM-гггг
-
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class BirthDate {
public static void main(String[] args) {
Date birth = null;
String birthDate = "30-MAR-2012";
DateFormat formatter = null;
try {
formatter = new SimpleDateFormat("dd-MMM-yyyy");
birth = (Date) formatter.parse(birthDate); // birtDate is a string
}
catch (ParseException e) {
System.out.println("Exception :" + e);
}
if (birth == null) {
System.out.println("Birth object is still null.");
} else {
System.out.println("Default date format " + birth);
System.out.println("Our SimpleDateFormat " + formatter.format(birth));
System.out.println("Our SimpleDateFormat with all uppercase " + formatter.format(birth).toUpperCase());
}
}
}