SAP ABAP-날짜 및 시간

ABAP는 전 세계 대부분에서 유효한 그레고리력을 암시 적으로 참조합니다. 출력을 국가 별 달력으로 변환 할 수 있습니다. 날짜는 달력과 관련하여 정확한 일, 주 또는 월로 지정된 시간입니다. 시간은 하루에 대해 정확한 초 또는 분으로 지정됩니다. ABAP는 항상 24 시간 형식으로 시간을 절약합니다. 출력은 국가 별 형식을 가질 수 있습니다. 날짜와 시간은 일반적으로 현재 시간대에서 유효한 현지 날짜로 해석됩니다.

ABAP는 날짜와 시간을 다루는 두 가지 내장 유형을 제공합니다.

  • D 데이터 유형
  • T 데이터 유형

다음은 기본 형식입니다-

DATA: date TYPE D, 
      time TYPE T.  
	
DATA: year TYPE I, 
month TYPE I,  
day TYPE I, 
hour TYPE I,  
minute TYPE I, 
second TYPE I.

이 두 유형은 각각 YYYYMMDD 및 HHMMSS 형식의 고정 길이 문자 유형입니다.

타임 스탬프

이러한 기본 제공 유형 외에도 다른 두 가지 유형은 TIMESTAMPTIMESTAMPL타임 스탬프를 UTC 형식으로 저장하기 위해 많은 표준 애플리케이션 테이블에서 사용되고 있습니다. 다음 표는 ABAP에서 사용할 수있는 기본 날짜 및 시간 유형을 보여줍니다.

S. 아니. 데이터 유형 및 설명
1

D

YYYYMMDD 형식의 기본 제공 고정 길이 날짜 유형입니다. 예를 들어 값 20100913은 2010 년 9 월 13 일 날짜를 나타냅니다.

2

T

HHMMSS 형식의 기본 제공 고정 길이 시간 유형입니다. 예를 들어 102305 값은 오전 10:23:05 시간을 나타냅니다.

TIMESTAMP (P 유형 – 길이 8 소수 없음)

이 유형은 YYYYMMDDhhmmss 형식의 짧은 타임 스탬프를 나타내는 데 사용됩니다. 예를 들어 값 20100913102305는 2010 년 9 월 13 일 오전 10:23:05의 날짜를 나타냅니다.

4

TIMESTAMPL (P 유형-길이 11 소수 7)

TIMESTAMPL은 YYYYMMDDhhmmss, mmmuuun 형식의 긴 타임 스탬프를 나타냅니다. 여기서 추가 숫자 'mmmuuun'은 1 초의 분수를 나타냅니다.

현재 날짜 및 시간

다음 코드 조각은 현재 시스템 날짜 및 시간을 검색합니다.

REPORT YR_SEP_15. 
DATA: date_1 TYPE D. 

date_1 = SY-DATUM. 
Write: / 'Present Date is:', date_1 DD/MM/YYYY. 

date_1 = date_1 + 06. 
Write: / 'Date after 6 Days is:', date_1 DD/MM/YYYY.

위의 코드는 다음 출력을 생성합니다.

Present Date is: 21.09.2015 
Date after 6 Days is: 27.09.2015

변수 date_1에는 현재 시스템 날짜 SY-DATUM의 값이 지정됩니다. 다음으로 날짜 값을 6 씩 증가시킵니다. ABAP의 날짜 계산 측면에서 이는 날짜 개체의 일 구성 요소를 6 일씩 증가 시킨다는 것을 의미합니다. ABAP 런타임 환경은 월말에 도달 할 때마다 날짜 값을 롤오버 할 수있을만큼 똑똑합니다.

시간 계산은 날짜 계산과 유사하게 작동합니다. 다음 코드는 기본 시간 산술을 사용하여 현재 시스템 시간을 75 초씩 증가시킵니다.

REPORT YR_SEP_15. 
DATA: time_1 TYPE T. 
      time_1 = SY-UZEIT. 

Write /(60) time_1 USING EDIT MASK 
'Now the Time is: __:__:__'. 
time_1 = time_1 + 75. 

Write /(60) time_1 USING EDIT MASK 
'A Minute and a Quarter from Now, it is: __:__:__'.

위의 코드는 다음 출력을 생성합니다.

Now the Time is 11:45:05 
A Minute and a Quarter from Now, it is: 11:46:20

타임 스탬프 작업

현재 시스템 시간을 검색하고 다음을 사용하여 타임 스탬프 변수에 저장할 수 있습니다. GET TIME STAMP다음 코드와 같이. GET TIME STAMP 문은 사용 된 타임 스탬프 데이터 개체의 유형에 따라 타임 스탬프를 긴 형식 또는 짧은 형식으로 저장합니다. 타임 스탬프 값은 UTC 표준을 사용하여 인코딩됩니다.

REPORT YR_SEP_12. 
DATA: stamp_1 TYPE TIMESTAMP,
 
stamp_2 TYPE TIMESTAMPL. 
GET TIME STAMP FIELD stamp_1. 
Write: / 'The short time stamp is:', stamp_1 

TIME ZONE SY-ZONLO. 
GET TIME STAMP FIELD stamp_2. 
Write: / 'The long time stamp is:', stamp_2 
TIME ZONE SY-ZONLO.

위의 코드는 다음 출력을 생성합니다.

The short time stamp is: 18.09.2015 11:19:40 
The long time stamp is: 18.09.2015 11:19:40,9370000

위의 예에서는 WRITE 문에 TIME ZONE을 추가하여 타임 스탬프를 표시합니다. 이 추가는 지정된 시간대의 규칙에 따라 타임 스탬프의 출력 형식을 지정합니다. 시스템 필드 SY-ZONLO는 사용자의 기본 설정에 구성된 현지 시간대를 표시하는 데 사용됩니다.