Ну как вариант есть такой ФМ J_3G_CHECK_EDITMASK на вход подаем маску и строку на выходе получаем результат соответствия. Само собой месяц именно как месяц проверка не делается, как и год, так как маска задается в терминах системы вида:
N - Число от 0 до 9
A - Буква
X - Число или буква
т.е. задаем маску вида NN-AAAAA-NNNN и тогда пользователь должен ввести что-то вида 28-ддддд-2100, что подходит под маску ввода, однако существует такая вещь как число букв в средине маски фиксировано, т.е. если ввести не пять букв "Д", то будет выдана ошибка, ну тут можно предложить следующее, количество букв делаем равным максимальному количеству букв в месяце, а месяцы короче максимального дополняем любой буквой.
PS: Но Дмитрий прав, смысла изобретать велосипед нет никакого, в системе есть четкие правила ввода даты и времени.