我需要在REST API中以“dd-mm-yyyy”格式给出日期。但即使我将日期字段的格式更改为“99-99-9999”,API响应也始终以“yyyy-mm-dd”格式显示。无论我选择何种格式,它似乎始终以ISO 8601格式提供日期。
我检查了会话:日期格式,它已经是dmy了。 “write-json()”方法也有同样的问题。但我只需要在REST webservice中使用它。进度verison: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给出。请不要建议使用字符串,对我来说使用字符串会非常痛苦。请注意,我只关注JSON中的日期格式。
您可以随时保持简单/强制它作为角色而不是日期:
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方法时,我认为您无法控制数据的格式。在另一端需要非常特定的数据格式的情况下,字符串有时是获得它的唯一方法。