需要JSON中“ dd-mm-yyyy”格式的日期

时间:2019-01-31 10:51:40

标签: json rest openedge progress-4gl

我需要在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中的日期格式。

2 个答案:

答案 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方法时,我认为您无法控制数据格式。如果另一端需要非常特定的数据格式,则有时字符串是获取数据的唯一方法。