CEEGMTO: 从格林威治标准时间到本地时间获取偏移量
CEEGMTO 将值返回到表示本地系统时间与格林威治标准时间 (GMT) 之差的调用例程。
- offset_hours (输出)
- 32 位二进制整数,表示从 GMT 到本地时间的偏移量 (以小时为单位)。
例如,对于太平洋标准时间, offset_hours 等于 -8。
offset_hours 的范围是 -12 到 +13 (+ 13 = +12 时区中的夏令时)。
如果本地时间偏移量不可用,那么 offset_hours 等于 0 ,并且 CEEGMTO 将以 non-CEE000 符号反馈代码终止。
- offset_minutes (输出)
- 32 位二进制整数,表示本地时间在 GMT 之前或之后的额外分钟数。
offset_minutes 的范围是 0 到 59。
如果本地时间偏移量不可用,那么 offset_minutes 等于 0 ,并且 CEEGMTO 以 non-CEE000 符号反馈代码终止。
- offset_seconds (输出)
- 64 位长浮点数,表示从 GMT 到本地时间的偏移量 (以秒计)。
例如,太平洋标准时间比 GMT 晚 8 小时。 如果当地时间在标准时间内的太平洋时区,CEEGMTO将返回-28,800 (-8 * 60 * 60)。 offset_seconds 的范围是 -43,200 到 +46,800。 offset_seconds 可与 CEEGMT 一起用于计算本地日期和时间。
如果本地时间偏移量在系统中不可用,那么 offset_seconds 将设置为 0 ,并且 CEEGMTO 将以 non-CEE000 符号反馈代码终止。
- fc (输出)
- 指示此服务结果的 12 字节反馈代码 (可选)。
| 符号反馈代码 | 严重性 | 消息号 | 消息文本 |
|---|---|---|---|
| CEE000 | 0 | -- | 服务已成功完成。 |
| CEE2E7 | 3 | 2503 | 从 UTC/GMT 到本地时间的偏移量在系统中不可用。 |
使用说明
- CEEDATM 将 offset_seconds 转换为字符时间戳记。
- 为了使此服务的结果有意义,必须将系统时钟设置为本地时间,并且必须正确设置环境变量 TZ。
示例
*************************************************
** **
** Function: Call CEEGMTO to get offset from **
** Greenwich Mean Time to local **
** time **
** **
** In this example, a call is made to CEEGMTO **
** to return the offset from GMT to local time **
** as separate binary integers representing **
** offset hours, minutes, and seconds. The **
** results are displayed. **
** **
*************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. IGZTGMTO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 HOURS PIC S9(9) BINARY.
01 MINUTES PIC S9(9) BINARY.
01 SECONDS COMP-2.
01 FC.
02 Condition-Token-Value.
COPY CEEIGZCT.
03 Case-1-Condition-ID.
04 Severity PIC S9(4) COMP.
04 Msg-No PIC S9(4) COMP.
03 Case-2-Condition-ID
REDEFINES Case-1-Condition-ID.
04 Class-Code PIC S9(4) COMP.
04 Cause-Code PIC S9(4) COMP.
03 Case-Sev-Ctl PIC X.
03 Facility-ID PIC XXX.
02 I-S-Info PIC S9(9) COMP.
PROCEDURE DIVISION.
PARA-CBLGMTO.
CALL 'CEEGMTO' USING HOURS , MINUTES ,
SECONDS , FC.
IF CEE000 of FC THEN
DISPLAY 'Local time differs from GMT '
'by: ' HOURS ' hours, '
MINUTES ' minutes, OR '
SECONDS ' seconds. '
ELSE
DISPLAY 'CEEGMTO failed with msg '
Msg-No of FC UPON CONSOLE
STOP RUN
END-IF.
GOBACK.
