【发布时间】:2020-01-17 15:34:38
【问题描述】:
我需要用 CICS ABSTIME 填充 PIC S9(15) COMP-3 变量。 (我相信这是自 1900 年开始以来经过的毫秒数)
我的输入格式为YYYY-MM-DD hh:mm:ss.mmmmmm。
这表示 CET 时区(阿姆斯特丹)中的时间戳,并遵循夏令时 ('DST')。
我找到了部分解决方案:
EXEC CICS CONVERTTIME
DATESTRING ('Tuesday, 09-Oct-07 04:57:43 GMT')
ABSTIME (WS-TIMESTAMP)
END-EXEC
ABSTIME 中的结果+003400898263000
但是 CONVERTTIME 只能处理 4 种日期格式类型(RFC 1123、RFC 3339、RFC 850、ASCtime),它们都不能同时处理时区和自动 DST 看: https://www.ibm.com/support/knowledgecenter/SSGMCP_5.4.0/reference/commands-api/dfhp4_converttime.html
将日期(包括时区和 DST)转换为 ABSTIME 的正确 Cobol (/CICS) 方法是什么?
【问题讨论】:
-
鉴于 DST 可能会根据政治上的挥霍而改变,今年的 DST 可能在去年可能并非如此。对于您的问题,您是否关心转换日期生效的 DST?从编程上讲,您可能需要调整算法。听起来您需要一张 DST 何时生效并在您所在地区收回的地图
标签: datetime type-conversion cobol cics