2012-05-10 22 views
0

私は変数で 'timestampl'型を使用するプログラムをABAPに用意していますので、特定のイベントの時刻を取得できます。彼らはミリ秒が必要なので、彼らはそれを使用します。2タイムスタンプの相違点

私は今、これらの変数のうち2つの違いを得るという使命を持っています。機能モジュールや別の解決策を見つけることができません。

ご協力いただきありがとうございます。

+0

はそれを減算しますか?どうした ? :-) – zod

+0

まあ、直接引くことが行くのかどうか分からない。それは月やそのようなことに応じて異なる日を考慮していますか? – Laloski

答えて

1

Google検索では、この推奨事項が表示されます。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). 
+1

これは実際にはデルタがミリ秒で要求される質問には答えません。 – tomdemuyt

0

使用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. 
1

CCU_TIMSTAMP_DIFFERENCEだけ短いタイムスタンプを受け入れますが、このFMは有用ではありませんので、彼らはミリ秒単位で動作するためにそれが役に立つことを願っています。

が正しく秒、ミリ秒単位で2つのタイムスタンプの間の差を返します

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. 

staticメソッドを試してみてください。