如果在 RPGLE 中有 yyyy/mm/dd 格式,如何测试(D)日期?
How to TEST(D) DATE if have format yyyy/mm/dd in RPGLE?
如何测试 yyyy/mm/dd 格式的字符日期?
我尝试使用:
*YMD TEST(D) DATE 80
我想测试这个 2021/15/30 日期,因为我想确保该日期经过验证,但似乎它不起作用,即使我测试了正确的日期,如 2021/06/01。我该怎么办?
我也试试这个:
Eval DT = %CHAR(%DATE(DATE:*YMD/))
*YMD TEST(DE) DT
IF NOT %ERROR()
Move DT DATE
Write Currec
Endif
我输入 2021/06/01 作为输入,但出现了这个错误:
我该怎么办?
我避免使用固定格式代码,所以我还没有确认这是否正确,但我相信您应该为此使用 *YYMD
或 *ISO
而不是 *YMD
给定您要检查的格式的特定测试。相关链接:
https://www.ibm.com/docs/en/i/7.3?topic=80-datfmt-date-format-keyword-physical-logical-files
https://www.ibm.com/docs/en/i/7.1?topic=codes-test-test-datetimetimestamp
RPG 不支持 YYYY/MM/DD 格式。您可以使用 %XLATE 将 / 更改为 - 然后使用 *ISO 格式。
EVAL DATE = %XLATE('/' : '-' : DATE)
*ISO TEST(DE) DATE
如何测试 yyyy/mm/dd 格式的字符日期?
我尝试使用:
*YMD TEST(D) DATE 80
我想测试这个 2021/15/30 日期,因为我想确保该日期经过验证,但似乎它不起作用,即使我测试了正确的日期,如 2021/06/01。我该怎么办?
我也试试这个:
Eval DT = %CHAR(%DATE(DATE:*YMD/))
*YMD TEST(DE) DT
IF NOT %ERROR()
Move DT DATE
Write Currec
Endif
我输入 2021/06/01 作为输入,但出现了这个错误:
我该怎么办?
我避免使用固定格式代码,所以我还没有确认这是否正确,但我相信您应该为此使用 *YYMD
或 *ISO
而不是 *YMD
给定您要检查的格式的特定测试。相关链接:
https://www.ibm.com/docs/en/i/7.3?topic=80-datfmt-date-format-keyword-physical-logical-files https://www.ibm.com/docs/en/i/7.1?topic=codes-test-test-datetimetimestamp
RPG 不支持 YYYY/MM/DD 格式。您可以使用 %XLATE 将 / 更改为 - 然后使用 *ISO 格式。
EVAL DATE = %XLATE('/' : '-' : DATE)
*ISO TEST(DE) DATE