【问题标题】:Need date in "dd-mm-yyyy" format in JSON需要 JSON 中“dd-mm-yyyy”格式的日期
【发布时间】:2019-06-24 19:33:33
【问题描述】:

我需要在 REST API 中以 "dd-mm-yyyy" 格式给出日期。但是 API 响应总是以 "yyyy-mm-dd" 格式出现,即使我将日期字段的格式更改为“99-99-9999”。无论我选择哪种格式,它似乎总是以 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": [ { “日期”:“2019-02-19” }, { “日期”:“2019-02-04” } ]}

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

【问题讨论】:

    标签: json rest openedge progress-4gl


    【解决方案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".
    

    【讨论】:

    • 我添加了有问题的示例代码,请参阅。日期格式适用于进度客户端(编辑器)没问题,但我担心的是 JSON 中的日期格式。我无法在 JSON 中获得我想要的日期格式。
    • @Mahesh 解决方法仍然是为字段切换到字符
    【解决方案2】:

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

    【讨论】:

    • 我还不能评论其他用户 cmets,我想确保包含有关 write-json 的添加信息。
    • 你说得对,似乎我们在使用 WRITE-JSON 时无法控制数据的格式。最后我接受了@Jensd 的建议。
    猜你喜欢
    • 1970-01-01
    • 2021-08-05
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多