#openedge #progress-4gl
#openedge #прогресс-4gl
Вопрос:
Формат даты по умолчанию при отображении дат — ДД / ММ / ГГ
Я хочу изменить это на ДД.ММ.ГГГГ
Это всего лишь простая программа:
DEFINE VARIABLE daDate AS DATE NO-UNDO.
daDate = TODAY.
MESSAGE daDate.
В настоящее время вывод выглядит следующим образом: 16/09/20
Я попытался добавить ФОРМАТ «99.99.9999» после имени переменной следующим образом: DEFINE VARIABLE daDate FORMAT "99.99.9999" AS DATE NO-UNDO.
но это вообще не изменило результат.
Когда я вместо того, чтобы MESSAGE
использовать DISPLAY
, а затем записать его с помощью FORMAT, тогда отображается правильный формат: DISPLAY daDate FORMAT "99.99.9999".
Я делаю что-то совершенно неправильно или я что-то упускаю?
Ответ №1:
Сначала выражение, которое вы сообщаете, будет преобразовано в символ, поэтому вместо этого вы можете взять под контроль это преобразование:
MESSAGE STRING(daDate,"99.99.9999").
Комментарии:
1. Черт, это было так просто. Большое спасибо!
2. У вас есть другие способы получить другие форматы, если вам нужно. Существует функция ISO-DATE, которая может использоваться как
ISO-DATE(daDate)
и возвращает дату в формате AAAA-MM-DD, а также функции YEAR, MONTH и DAY, которые используются так же, как ISO-DATE, и возвращают, соответственно, часть года, часть месяца и часть дня вашей переменной ДАТЫ в целых числах, позволяя форматировать каждую из них так, как вам нужно. Надеюсь, это поможет.
Ответ №2:
DEFINE VARIABLE hoy AS CHARACTER NO-UNDO.
hoy = STRING (DAY (TODAY), "99") "."
STRING (MONTH (TODAY), "99") "."
STRING (YEAR (TODAY)) .
Message hoy.