在 JSON 中需要 "dd-mm-yyyy" 格式的日期

Need date in "dd-mm-yyyy" format in JSON

我需要在 REST API 中以 "dd-mm-yyyy" 格式提供日期。但是 API 响应总是以 "yyyy-mm-dd" 格式出现,即使我将日期字段的格式更改为“99-99-9999”。无论我选择什么格式,它似乎总是以 ISO 8601 格式提供日期。

我检查了 session:date-格式,它已经是 dmy。 "write-json()"方法也有同样的问题。但我只需要在 REST 网络服务中使用它。进度版本:11.3。 请参阅此以获得更多说明:

DEFINE TEMP-TABLE ttdate
FIELD fdate AS DATE FORMAT "99-99-9999".

CREATE ttdate.
ASSIGN ttdate.fdate = TODAY.

CREATE ttdate.
ASSIGN ttdate.fdate = TODAY - 15.

TEMP-TABLE ttdate:WRITE-JSON("file", "D:/ttdate.json", YES).

{"ttdate": [ { "fdate": "2019-02-19" }, { "fdate": "2019-02-04" } ]}

JSON中,无论我选择什么格式,它总是给出 YYYY-MM-DD。请不要建议使用字符串,使用 string.Please 对我来说会很痛苦,请注意我只关心 JSONs 中的日期格式。

您可以随时将它 simple/force 保留为字符而不是日期:

DEFINE VARIABLE dt AS DATE        NO-UNDO.
DEFINE VARIABLE c  AS CHARACTER   NO-UNDO FORMAT "x(12)".

dt = TODAY.

c = STRING(DAY(dt),"99") + "-" + STRING(MONTH(dt),"99") + "-" + STRING(YEAR(dt), "9999").

DISPLAY c .

31-01-2019

但是,对于这个用例(显示),这对我来说确实有效。

SESSION:DATE-FORMAT = "dmy".
DISP TODAY FORMAT "99-99-9999".

@Jensd 第一个解决方案听起来像您的情况所需要的。使用 WRITE-JSON 方法时,我认为您无法控制数据的格式。在另一端需要非常特定格式的数据的情况下,字符串有时是获取它的唯一方法。