Я это как строка 02/06/2012 1:25 PM EST
SimpleDateFormat, нужно текстуальное месяц
Я хочу использовать SimpleDateFormat вернуться «Feb» из этих данных
Вот что я пытался
SimpleDateFormat gottenDate = new SimpleDateFormat("MMM");
String month = "";
try {
month = gottenDate.format(gottenDate.parse("02/06/2012 1:25 PM EST"));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
К сожалению gottenDate.parse("02/06/2012 1:25 PM EST")
получает исключение синтаксического анализа, когда документы SimpleDateFormat говорят, что он должен работать.
Если я делаю SimpleDateFormat gottenDate = new SimpleDateFormat("MM");
с двумя M вместо 3, он возвращает «02» для меня, как и ожидалось. В документах говорится, что 3 или более M должны возвращать текстовый месяц. Почему этого не происходит? И да, к настоящему моменту я мог бы создать массив строк в несколько месяцев и сопоставить их с числовым месяцем SDF для меня, но мне любопытно.
Как мне заставить его работать на меня, спасибо!
Я вижу сейчас. К сожалению, дата, которую я получаю, фактически передается этому методу, и ее формат приходит как «02/06/2012 13:25 EST», думаю, я просто сделаю соответствующий массив месяцев, чтобы рассказать ему, что «02 'означает – CQM
Не обязательно. Вы можете сделать это как двухэтапный процесс: 1) * parse * string, используя один экземпляр SimpleDateFormat с известным шаблоном; 2) после того, как вы получите объект Date - * format *, используя другой экземпляр SimpleDateFormat, такой как новый SimpleDateFormat («MMM»). –