Don't worry about the Progress displayformat - as long as you convert your string to a datetime-tz
you can always play around with display format later.
In this case I think you need to do it the "hard" way. Here's something to get you started.
DEFINE VARIABLE cDateString AS CHARACTER NO-UNDO.
DEFINE VARIABLE dtDate AS DATETIME-TZ NO-UNDO.
FUNCTION convertDateString RETURNS DATETIME-TZ (INPUT pcString AS CHARACTER):
DEFINE VARIABLE dtDateTz AS DATETIME-TZ NO-UNDO.
DEFINE VARIABLE cDateTz AS CHARACTER NO-UNDO.
DEFINE VARIABLE iMonth AS INTEGER NO-UNDO.
CASE ENTRY(2, pcString, "-"):
WHEN "Jan" THEN iMonth = 1.
WHEN "Feb" THEN iMonth = 2.
WHEN "Mar" THEN iMonth = 3.
WHEN "Apr" THEN iMonth = 4.
WHEN "May" THEN iMonth = 5.
WHEN "Jun" THEN iMonth = 6.
WHEN "Jul" THEN iMonth = 7.
WHEN "Aug" THEN iMonth = 8.
WHEN "Sep" THEN iMonth = 9.
WHEN "Oct" THEN iMonth = 10.
WHEN "Nov" THEN iMonth = 11.
WHEN "Dec" THEN iMonth = 12.
END CASE.
IF iMonth = 0 THEN RETURN ?.
ASSIGN
cDateTz = SUBSTRING(ENTRY(3, pcString, "-"), 1 ,4) + "-" + STRING(iMonth) + "-" + ENTRY(1, pcString, "-") + " " + ENTRY(2, pcString, " ").
dtDateTz = DATETIME-TZ(cDateTz).
RETURN dtDateTz.
END FUNCTION.
cDateString = "15-Sep-2017 20:51:14.566".
dtDate = convertDateString(cDateString).
DISPLAY dtDate FORMAT "99/99/9999 HH:MM:SS.SSS+HH:MM".