我需要在REST API中以“ dd-mm-yyyy” 格式给出日期。但是,即使我将日期字段的格式更改为“ 99-99-9999”,API响应也始终以“ yyyy-mm-dd” 格式出现。不论我选择哪种格式,似乎总是以ISO 8601格式给出日期。
我检查了session:date-format,它已经是dmy。 “ write-json()”方法也有同样的问题。但是我只在REST Web服务中需要它。进度版本: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中的日期格式。
答案 0 :(得分:1)
您始终可以保持简单/强制将其作为字符而不是日期:
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".
答案 1 :(得分:0)
@Jensd第一个解决方案听起来像您需要的情况。使用WRITE-JSON方法时,我认为您无法控制数据格式。如果另一端需要非常特定的数据格式,则有时字符串是获取数据的唯一方法。