我在ABAP中有一个程序,他们在一个变量中使用'timestampl'类型,所以他们可以得到某些事件的时间。他们使用它,因为他们需要毫秒。2个时间戳之间的差异
我现在的任务是获取两个变量之间的差异,而我似乎无法找到功能模块或其他解决方案。
任何帮助非常感谢!
我在ABAP中有一个程序,他们在一个变量中使用'timestampl'类型,所以他们可以得到某些事件的时间。他们使用它,因为他们需要毫秒。2个时间戳之间的差异
我现在的任务是获取两个变量之间的差异,而我似乎无法找到功能模块或其他解决方案。
任何帮助非常感谢!
谷歌搜索发现了这个建议:http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/840ad679-0601-0010-cd8e-9989fd650822#q-8:使用类CL_ABAP_TSTMP。您还可以在此线程中看到如何使用该类的示例:http://scn.sap.com/thread/85476。
cl_abap_tstmp=>systemtstmp_syst2utc(
exporting
syst_date = <wa_joblist>-strtdate
syst_time = <wa_joblist>-strttime
importing
utc_tstmp = start_stamp).
cl_abap_tstmp=>systemtstmp_syst2utc(
exporting
syst_date = sy-datum
syst_time = sy-uzeit
importing
utc_tstmp = now_stamp).
seconds = cl_abap_tstmp=>subtract(
tstmp1 = now_stamp
tstmp2 = start_stamp).
这实际上并没有回答这个问题,它需要以毫秒为单位的增量。 – tomdemuyt
使用FM * 'CCU_TIMESTAMP_DIFFERENCE' *
检查哪些时间戳更大调用FM之后。
IF TIMESTAMP_2 > TIMESTAMP_1.
CALL FUNCTION 'CCU_TIMESTAMP_DIFFERENCE'
EXPORTING
TIMESTAMP1 = TIMESTAMP_2
TIMESTAMP2 = TIMESTAMP_1
IMPORTING
DIFFERENCE = TIMESTAMP_DIFFERENCE.
EndIf.
CCU_TIMSTAMP_DIFFERENCE
只接受短时间戳,但他们用毫秒工作,所以这FM是没有用的,将是有益的。
尝试的静态方法
DATA: lv_tstmp1 TYPE timestampl,
lv_tstmp2 TYPE timestampl,
lv_diff TYPE tzntstmpl.
CALL METHOD cl_abap_tstmp=>subtract
EXPORTING
tstmp1 = lv_tstmp1
tstmp2 = lv_tstmp2
RECEIVING
r_secs = lv_diff.
这将正确地返回在秒和毫秒的时间戳2之间的差。
减去它?有什么问题? :-) – zod
那么,我不确定是否直接减量是一条路。这是否考虑不同的日子取决于月份和类似的事情? – Laloski