Błąd Jody Time lub mój błąd? (Java Joda Time daty jako ciągi parsowania)
więc miałem problem z analizą daty, używając chronologii JodaTimeIslamicChronology
więc napisałem mały przykład, aby zademonstrować mój problem.
Oto kod:
import org.joda.time.Chronology;
import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.chrono.IslamicChronology;
import java.util.Date;
/**
* Test
*/
public class Test
{
public static void main(String[] args)
{
Date now = new Date();
String format = "dd MMM yyyy";
Chronology calendarSystem = IslamicChronology.getInstance();
DateTimeFormatter formatter = DateTimeFormat.forPattern(format).withChronology(calendarSystem);
String nowAsString = formatter.print(now.getTime());
System.out.println("nowAsString = " + nowAsString);
long parsedNowTs = formatter.parseMillis(nowAsString);
String parsedNowTsAsString = formatter.print(parsedNowTs);
}
}
A wyjście:
nowAsString = 16 10 1430
Exception in thread "main" java.lang.IllegalArgumentException: Invalid format: "16 10 1430" is malformed at "10 1430"
at org.joda.time.format.DateTimeFormatter.parseMillis(DateTimeFormatter.java:634)
at test.Test.main(Test.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
...
Myślę, że problem polega na tym, że nazwa miesiąca jest numeryczna, ale czy mam rację? Czy ktoś ma jakieś sugestie? Nie można tego odtworzyć, jeśli chronologia jest gregoriańska.
Z góry dziękuję.