Hola:
Tal vez te pueda servir esta idea:
*******************************************************************************************
LOCAL cFecha as String
cFecha = "01 JAN 05"
dFecha = obtenerDate(cFecha)
?dFecha
RETURN
PROCEDURE obtenerDate(cFecha as String) as Date
LOCAL ARRAY aFragmentos(3)
ALINES(aFragmentos, cFecha, 1, ' ')
LOCAL nDia, nMes, nAnio
nDia = CAST(aFragmentos[1] as I)
nMes = obtenerNumeroMes(aFragmentos(2))
nAnio = CAST(aFragmentos[3] as I) + INT(YEAR(DATE())/1000) * 1000
RETURN DATE(nAnio, nMes, nDia)
ENDPROC
PROCEDURE obtenerNumeroMes(cMes as String) as Integer
DO CASE
CASE ALLTRIM(UPPER(cMes)) == "JAN"
RETURN 1
CASE ALLTRIM(UPPER(cMes)) == "FEB"
RETURN 2
CASE ALLTRIM(UPPER(cMes)) == "MAR"
RETURN 3
CASE ALLTRIM(UPPER(cMes)) == "APR"
RETURN 4
CASE ALLTRIM(UPPER(cMes)) == "MAY"
RETURN 5
CASE ALLTRIM(UPPER(cMes)) == "JUN"
RETURN 6
CASE ALLTRIM(UPPER(cMes)) == "JUL"
RETURN 7
CASE ALLTRIM(UPPER(cMes)) == "AUG"
RETURN 8
CASE ALLTRIM(UPPER(cMes)) == "SEP"
RETURN 9
CASE ALLTRIM(UPPER(cMes)) == "OCT"
RETURN 10
CASE ALLTRIM(UPPER(cMes)) == "NOV"
RETURN 11
CASE ALLTRIM(UPPER(cMes)) == "DEC"
RETURN 12
OTHERWISE
RETURN 0
ENDCASE
ENDPROC
*******************************************************************************************
Espero que te sirva. Saludos.
------------------------------------------------------------------------------------------------------------------