Napisałem prostą metodę Utila, aby przekonwertować String
w Javie na util.Date
. Co nie jestem w stanie dowiedzieć się, dlaczego metoda działa dla pierwszego wejścia, a nie na drugim, biorąc pod uwagę, że środki te są identyczne:Niespójne ParseExeption z formatem danych w Javie
Kod:
package util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDate {
public Date getDateFromString(String strDate, String dateFormat) {
DateFormat df = new SimpleDateFormat(dateFormat);
Date date = null;
try {
date = df.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date);
return date;
}
public static void main(String[] args) {
StringToDate s2d = new StringToDate();
s2d.getDateFromString("12-18-11, 10:36 AM","MM-dd-yy, hh:mm a");
s2d.getDateFromString("02-04-12, 01:17 PM","MM-dd-yy, hh:mm a");
}
}
wyjściowa:
Sun Dec 18 10:36:00 CET 2011
null
java.text.ParseException: Unparseable date: "02-04-12, 01:17 PM"
at java.text.DateFormat.parse(DateFormat.java:337)
at util.StringToDate.getDateFromString(StringToDate.java:17)
at util.StringToDate.main(StringToDate.java:33)
Logicznie, wyjście powinno być Sat Feb 04 13:17:00 CET 2012
idące przez pierwsze wyjście. Dlaczego wyrzucany jest ParseException
?
EDIT: Poniższe dwie linie działają poprawnie:
s2d.getDateFromString("02-04-12", "MM-dd-yy");
s2d.getDateFromString("01:17 PM", "hh:mm a");
wyjściowa:
Sat Feb 04 00:00:00 CET 2012
Thu Jan 01 13:17:00 CET 1970
jednak wyjątek dzieje, gdy próbuję analizować zarówno datę i czas razem.
Jestem zdezorientowany - to działa dobrze dla mnie. –
Ja też - w jakiej jesteś kulturze? Dzięki za dołączenie krótkiego, ale kompletnego programu, pamiętajcie: –
@JonSkeet: Nie rozumiem, o co ci chodzi w "jakiej kulturze jesteś?", Ale dzięki za komplement! Czy program działa dobrze? Używam JDK 1.6 (1.6.0.11). Wypróbowałem Eclipse, a nawet klasyczną trasę polecenia do uruchomienia powyższej [SSCCE] (http://homepage1.nifty.com/algafield/sscce.html). Nadal, ten sam wyjątek; ta sama niespójność. Wsparcie! – SNag