Что делать для снятия этой неоднозначности?
Решение проблемы лежит вне области программирования, а в области требований к программе. в данном случае - к входным и выходным данным. В данных же документах должно зафиксировать что формат с 2-я цифрами года - "не однозначен"(из данных - XX-XX-XX нельзя однозначно понять формат) (впрочем и в случае года с 4-я цифрами тоже не всегда - в пиндостании, кажется, так исторически сложилось, что распространен формат "месяц-день-год" - "XX-XX-XXXX") .
Потому в сопроводительных документах и помощи/подсказках надо четко указывать что и в каком формате вы требуете/ожидаете на входе.
Что делать?
1) поменять формат представления на тот, который не вызывает неоднозначности. скажем на "yyyy.MMM.dd".
2) использовать "
QDateTime::fromString ( const QString & string, const QString & format )" с явным указанием формата - format="
yy-MM-dd", или "
dd-MM-yy" - но что-то одно и _везде_.
Не пытайтесь предугадать тараканов в голове пользователя. Не пытайтесь угадать формат входных данных.
Просто требуйте вводить дату в заданном формате и все.
Не надо брать на себя ответственность за "неправильный разбор данных" в условиях когда формат не известен и тем более не однозначен.
Вынесите эту ответственность из области проектирования программы в область рантайма и переложите эту ответственность на оператора, снабдив его соответствующими подсказками. Исправить поведение оператора можно, а предугадать данные с которыми он работает - нельзя.
имха))