Если вы АБСОЛЮТНО уверены, что у вас всегда есть вышеупомянутый немецкий формат, тогда я вижу опцию C, создавая символ * одинаковой длины для английского представления и перетасовывая значения вокруг:
MyEnglishD [0] = MyGermanD [ 6 ];
MyEnglishD [1] = MyGermanD [ 7 ];
MyEnglishD [2] = MyGermanD [ 8 ];
MyEnglishD [3] = MyGermanD [ 9 ];
MyEnglishD [4] = '.';
MyEnglishD [5] = MyGermanD [ 3 ];
MyEnglishD [6] = MyGermanD [ 4 ];
MyEnglishD [7] = '.';
MyEnglishD [8] = MyGermanD [ 0 ];
MyEnglishD [9] = MyGermanD [ 1 ];
Другойя бы предпочел использовать строку формата даты в вашем коде SQL INSERT (пример для Oracle):
INSERT INTO MyTable (MyDateCol,...)
SELECT TO_DATE ( :MyDateVal, :MyDateFormat), :anotherVal... FROM DUAL;
Для английской даты формат должен быть 'YYYY.MM.DD', а длянемецкий 'ДД.ММ.ГГГГ'.