日期转换逻辑
CALL FUNCTION '
CONVERSION_EXIT_INVDT_OUTPUT'
EXPORTING
input = gs_exch_rate-gdatu “789689”
IMPORTING
output = l_date. “2021.09.08”
SELECT SINGLE datfm FROM usr01 WHERE bname = @sy-uname INTO @DATA(lv_datfm).
IF lv_datfm = '1'.
CONCATENATE l_date+6(4) l_date+3(2) l_date(2) INTO gs_exch_rate-date.
ELSEIF lv_datfm = '4'.
CONCATENATE l_date+0(4) l_date+5(2) l_date+8(2) INTO gs_exch_rate-date.
ENDIF.
把时间和日期转成时间戳
CONVERT DATE IV_DATE
TIME IV_TIME
INTO TIME STAMP EV_TIMESTAMP
TIME ZONE SY-ZONLO.
把时间和日期转成时间
戳
函数
CALL FUNCTION '
CIF_GEN4_CONVERT_DATETIME'
EXPORTING
iv_date = l_datum1
IV_TIME = l_time1
IV_TIMEZONE = SY-ZONLO
IMPORTING
EV_TIMESTAMP = l_timestamp1
EXCEPTIONS
TIME_CONVERSION_FAILED = 1
OTHERS = 2.
把时间戳转成日期时间:
CONVERT TIME STAMP IV_TIMESTAMP
TIME ZONE LV_UTCZONE
INTO DATE EV_DATE
TIME EV_TIME.
把时间戳转成日期时
间
函数
CALL FUNCTION '
CIF_GEN4_CONVERT_TIMESTAMP'
EXPORTING
iv_timestamp = l_timestamp3
IV_TIMEZONE = SY-ZONLO
SAP时间转换为Javashijainchuo

将ABAP时间戳转换为JAVA时间戳
DATA:lv_timestampl TYPE timestampl."长时间格式的时间戳
DATA:lv_str_timestampl TYPE char22.
GET TIME STAMP FIELD lv_timestampl.
调用系统类方法进行数据获得java时间戳(毫秒级别)
DATA lv_java_timestamp TYPE string.
cl_pco_utility=>convert_abap_timestamp_to_java(
EXPORTING
iv_date = conv #( lv_str_timestampl(8) )
iv_time = conv #( lv_str_timestampl+8(6) )
iv_msec = conv #( lv_str_timestampl+15(3) )
IMPORTING
ev_timestamp = lv_java_timestamp ).
CLEAR:LV_JAVA_TIMESTAMP,LV_DATE,LV_TIME.
LV_JAVA_TIMESTAMP = LS_LIST-CREATETIMESTAMP.
CL_PCO_UTILITY=>CONVERT_JAVA_TIMESTAMP_TO_ABAP(
EXPORTING
IV_TIMESTAMP = LV_JAVA_TIMESTAMP
IMPORTING
EV_DATE = LV_DATE
EV_TIME = LV_TIME ).
CONVERT DATE LV_DATE
TIME LV_TIME
INTO
TIME STAMP DATA(LV_TIMESTAMP2)
TIME ZONE '
UTC'.
CLEAR:LV_DATE,LV_TIME.
CONVERT
TIME STAMP LV_TIMESTAMP2
TIME ZONE SY-ZONLO
INTO
DATE LV_DATE
TIME LV_TIME.
时间戳转换:
DATA TIME TYPE TIMESTAMP.
DATA LV_TSTMP1 TYPE P.
DATA LV_TSTMP2 TYPE P.
DATA LV_SECS TYPE TIMESTAMP.
CONVERT DATE P_DATE
TIME P_TIME
INTO TIME STAMP TIME
TIME ZONE SY-ZONLO.
LV_TSTMP1 = TIME.
LV_TSTMP2 = '19700101000000'.
TRY.
CALL METHOD
CL_ABAP_TSTMP=>SUBTRACT
EXPORTING
TSTMP1 = LV_TSTMP1
TSTMP2 = LV_TSTMP2
RECEIVING
R_SECS = LV_SECS.
CATCH CX_PARAMETER_INVALID_RANGE .
CATCH CX_PARAMETER_INVALID_TYPE .
ENDTRY.
1、时间差计算函数(单位秒)
SWI_DURATION_DETERMINE

时间戳相差秒数函数
/SDF/CMO_TIME_DIFF_GET

时间分秒计算

获的两个日期之间的分钟数
data min TYPE i.
CALL FUNCTION 'DELTA_TIME_DAY_HOUR'
EXPORTING
T1 = '060000'
T2 = '070000'
D1 = '20160101'
D2 = '20160101'
IMPORTING
MINUTES = min .
write min.

l_timestamp =
CL_ABAP_TSTMP=>ADD(
TSTMP = l_timestamp (YYMMDDHHMMSS)
SECS = 5 ). 【加的秒数】
日期加减年月日自建函数

获取两个日期期间的:天数、周数、月数、年数
包括期间月份的开始(月份第一天日期)、截止日期(月份最后一天日期)
TYPE-POOLS: p99sg.
DATA: days TYPE i,
weeks TYPE i,
months TYPE i,
years TYPE i.
DATA: month_tab TYPE STANDARD TABLE OF p99sg_month_tab_row.
CALL FUNCTION 'HR_99S_INTERVAL_BETWEEN_DATES'
EXPORTING
begda = '20150101' "开始日期
endda = '20160101' "截止日期
IMPORTING
days = days "返回天数:266
c_weeks = weeks "返回周数:52
c_months = months "返回月数:12
c_years = years "返回年数:1
month_tab = month_tab. "期间月份首尾日
两个日期相差天数月份年计算函数
FIMA_DAYS_AND_MONTHS_AND_YEARS

通过函数计算两个日期的差异月份
CALL FUNCTION 'MONTHS_BETWEEN_TWO_DATES_NEW'
EXPORTING
I_DATUM_BIS =
I_DATUM_VON =
* I_KZ_INCL_BIS = ' '
* I_KZ_VOLLE_MONATE = 'X'
IMPORTING
E_MONATE =
获取输入日期月份的最后一天的日期
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
EXPORTING
day_in = '20160104' "输入日期
IMPORTING
last_day_of_month = "返回最后一天日期:20160131
EXCEPTIONS
day_in_no_date = 1
OTHERS = 2.
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
day_in = '20160101'
IMPORTING
last_day_of_month = date 20160131
EXCEPTIONS
day_in_no_date = 1
OTHERS = 2.
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
i_date = '20160101' "输入日期
IMPORTING
e_date = date. 20160131
根据条件获取需要的日期
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = '20160101' "日期
days = 10 "天数
months = 0 "月数