Die Reihenfolge in TryISO8601ToDate ist m.e. Falsch. So sollte man das nie machen.
Ich habe mir mal sagen lassen, das sei die übliche Implementation in JAVA. Damals hatte ich mich über ein Visual Basic 6 Programm beschwert, das durchgehend so programmiert war.
Kann aber auch sein, dass der Typ mich verarscht hat.
twm