Я запускаю некоторый нечетный вывод с использованием объекта 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
Решение было найдено, мм для минут, и я использовал месяц, который должен был быть ММ.
Есть ли другие символы, которые могут быть легко сбиты с толку за бонусные баллы?
_ «Есть ли какие-либо другие символы, которые могут быть легко спутать для бонусных баллов?» _ Прочитайте разделы дата и время шаблоны: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html –
Как обычная процедура быстрой отладки шаблонов SimpleDateFormat, я использую формат для печати новых Date() и убедитесь, что формат создает текущее время в ожидаемом формате. –