擷取系統時間至微秒單位(Get system timesatmp with a precision in microseconds by API QWCCVTDT)
範例含 CLP, RPGLE, COBOL。
File  : QCLSRC
Member: GETSYSTIMC
Type  : CLP
Usage : CRTCLPGM PGM(GETSYSTIMC)		
        
PGM
/* For Convert Date & Time...                                     */
    dcl   &CDT_I_FORM  *char   10     value( '*CURRENT' )
    dcl   &CDT_I_VAR   *char    8
    dcl   &CDT_O_FORM  *char   10     value( '*YYMD' )
    dcl   &CDT_O_VAR   *char   20
    dcl   &CDT_I_TZ    *char   10     value( '*SYS' )
    dcl   &CDT_O_TZ    *char   10     value( '*SYS' )
    dcl   &CDT_O_TZi   *char  111     value( ' ' )
    dcl   &CDT_O_TZl   *int           value( 0   )
    dcl   &CDT_O_Pi    *char    1     value( '1' )
/* And we'll need to specify an errcode receiver at one point...    */
    dcl   &ERRCODE     *char  116     value( x'00000074' )
    dcl   &ERRLEN      *int           value( 0 )
    call        QWCCVTDT         ( +
                                   &CDT_I_FORM +
                                   &CDT_I_VAR  +
                                   &CDT_O_FORM +
                                   &CDT_O_VAR  +
                                   &ERRCODE    +
                                   &CDT_I_TZ   +
                                   &CDT_O_TZ   +
                                   &CDT_O_TZi  +
                                   &CDT_O_TZl  +
                                   &CDT_O_Pi   +
                                 )
    SndPgmMsg   MsgId(CPF9898) MsgF(*LIBL/QCPFMSG) +
                MsgDta(&CDT_O_VAR)
    Return
 ENDPGM
File  : QRPGLESRC
Member: GETSYSTIMR
Type  : RPGLE
Usage : CRTBNDRPG PGM(GETSYSTIMR)		
       
     **-- API error data structure:
     D ERRC0100        Ds                  Qualified
     D  BytPrv                       10i 0 Inz( %Size( ERRC0100 ))
     D  BytAvl                       10i 0
     D  MsgId                         7a
     D                                1a
     D  MsgDta                      128a
     DOutputVar        DS
     D  CurCentury                    2
     D  CurYear                       2
     D  CurMonth                      2
     D  CurDay                        2
     D  CurHour                       2
     D  CurMinute                     2
     D  CurSecond                     2
     D  CurMicroSec                   6
     D TimeZoneInfL                  10i 0
     C                   Move      *On           *InLr
     C                   Call      'QWCCVTDT'
     C                   Parm      '*CURRENT'    InputFmt         10
     C                   Parm                    InputVar          1
     C                   Parm      '*YYMD'       OutputFmt        10
     C                   Parm                    OutputVar
     C                   Parm                    ERRC0100
     C                   Parm                    InpTimeZone      10
     C                   Parm      '*SYS'        OutTimeZone      10
     C                   Parm                    TimeZineInf       1
     C                   Parm      0             TimeZoneInfL
     C                   Parm      '1'           PrcInd            1
     C     OutputVar     dsply
File  : QCBLLESRC
Member: GETSYSTIME
Type  : COBOL
Usage : CRTCBLPGM PGM(GETSYSTIME)		
        
						
       IDENTIFICATION DIVISION.
          PROGRAM-ID.  SAMPLE07.
       ENVIRONMENT DIVISION.
        CONFIGURATION SECTION.
          SOURCE-COMPUTER.  IBM-AS400.
          OBJECT-COMPUTER.  IBM-AS400.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
         01 DATES.
          05  INPUT-DATE           PIC X(10).
          05  OUTPUT-DATE17        PIC X(17).
          05  OUTPUT-DATE20        PIC X(20).
          05  INPUT-DATE-FORMAT    PIC X(10).
          05  OUTPUT-DATE-FORMAT   PIC X(10).
          05  INPUT-TIME-ZONE      PIC X(10) VALUE '*SYS'.
          05  OUTPUT-TIME-ZONE     PIC X(10) VALUE '*SYS'.
          05  TIME-ZONE-INFO       PIC X(10).
          05  TIME-ZONE-INFO-LEN   PIC S9(9) BINARY VALUE ZERO.
          05  PRECISION-INDICATOR  PIC X(01) VALUE '1'.
         01 CURRENTTIME.
          05 CUR-YEAR              PIC X(04).
          05 CUR-MONTH             PIC X(02).
          05 CUR-DAY               PIC X(02).
          05 CUR-HH                PIC X(02).
          05 CUR-MM                PIC X(02).
          05 CUR-SS                PIC X(02).
          05 CUR-MICROSECOND       PIC X(06).
         01 ERRPARM.
          05 INPUT-L        PIC S9(9) BINARY VALUE 116.
          05 OUTPUT-L       PIC S9(9) BINARY VALUE ZERO.
          05 EXCEPTION-ID   PIC X(7).
          05 RESERVED       PIC X(1).
          05 EXCEPTION-DATA PIC X(100).
       PROCEDURE DIVISION.
       MAINLINE.
           PERFORM GET-DATE-08
           GOBACK.
          GET-DATE-08.
            MOVE SPACES TO EXCEPTION-ID.
            MOVE "*CURRENT" TO INPUT-DATE-FORMAT.
            MOVE "*YYMD   " TO OUTPUT-DATE-FORMAT.
            CALL "QWCCVTDT" USING INPUT-DATE-FORMAT ,
                                  INPUT-DATE        ,
                                  OUTPUT-DATE-FORMAT,
                                  CURRENTTIME       ,
                                  ERRPARM           ,
                                  INPUT-TIME-ZONE   ,
                                  OUTPUT-TIME-ZONE  ,
                                  TIME-ZONE-INFO    ,
                                  TIME-ZONE-INFO-LEN,
                                  PRECISION-INDICATOR.
            DISPLAY 'TIMESTAMP FROM COBOL: ' CURRENTTIME.
						
參照: Convert Date and Time Format (QWCCVTDT) API
A blog about IBM i (AS/400), MQ and other things developers or Admins need to know.
星期四, 11月 09, 2023
2016-04-06 擷取系統時間至微秒單位(Get system timesatmp with a precision in microseconds by API QWCCVTDT)
訂閱:
張貼留言 (Atom)
 
沒有留言:
張貼留言