2013-12-11 1 views
0

Я запускаю некоторый нечетный вывод с использованием объекта Java, DateFormat. По какой-то причине он добавляет один к моему месяцу, и я не уверен, почему. Я поставил задачу как можно проще.Устранение неполадок Java DateFormat Month Parsing Issue

import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

/** 
* 
* @author djc39_000 
*/ 
public class TestDate { 
    public static void main(String[] args) { 
     DateFormat formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm:ss a"); 
     Date testDate; 
     try { 
      testDate = (Date) formatter.parse("12/6/2013 11:23:04 AM"); 
      System.out.println(testDate); 
     } catch (ParseException ex) { 
      System.out.println(ex); 
     } 

    } 
} 

Выход:

Sun Jan 06 11:23:04 EST 2013 

Ожидая выхода:

Кроме того, если я изменю месяц до 11 в моей строке это не меняет месяц в штампе. Что я делаю не так? Thanks

Решение было найдено, мм для минут, и я использовал месяц, который должен был быть ММ.

Есть ли другие символы, которые могут быть легко сбиты с толку за бонусные баллы?

+1

_ «Есть ли какие-либо другие символы, которые могут быть легко спутать для бонусных баллов?» _ Прочитайте разделы дата и время шаблоны: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html –

+0

Как обычная процедура быстрой отладки шаблонов SimpleDateFormat, я использую формат для печати новых Date() и убедитесь, что формат создает текущее время в ожидаемом формате. –

ответ

4

Формат даты должен быть «MM/дд/гггг чч: мм: сс»

Смежные вопросы