5
UTCタイムスタンプをシステムタイムゾーンの日付と時刻に変換する方法はありますか? UTCタイムスタンプからの変換UTCタイムスタンプをABAPのシステム日付と時刻に変換する方法
ユーザーにローカルのタイムゾーンは簡単です、あなただけ行うことができます:
CONVERT TIME STAMP lv_utc_timestamp TIME ZONE sy-zonlo
INTO DATE lv_local_date TIME lv_local_time.
しかし、どのようにシステム時間のためにそれを行うには - システム時刻を、例えば、多くの状況で必要とされていますJOB_CLOSE汎用モジュールを呼び出すとき。私がこれまでに出ている唯一の解決策は、そのようなものです:
SELECT SINGLE * FROM TTZCU INTO ls_ttzcu.
CONVERT TIME STAMP lv_utc_timestamp TIME ZONE ls_ttzcu-tzonesys
INTO DATE lv_system_date TIME lv_system_time.
これは、すでに最適なソリューションですまたはシステムのタイムゾーンは別の方法で取得することができますか? テーブルTTZCUのエントリには常に有効なタイムゾーンがありますか?何か案は?
UPDATE:を私は別の方法を、発見した: @rmtiwariはTTZCUのFLAGACTIVEフラグもチェックする必要があり、そのように修飾文がアップデート2
SELECT SINGLE * FROM TTZCU INTO ls_ttzcu WHERE flagactive = abap_true.
CONVERT TIME STAMP lv_utc_timestamp TIME ZONE ls_ttzcu-tzonesys
INTO DATE lv_system_date TIME lv_system_time.
になると、Twitter上で示唆しましたおそらく最高:
cl_abap_tstmp=>systemtstmp_utc2syst(
EXPORTING utc_tstmp = lv_utc_timestamp
IMPORTING syst_date = lv_system_date " System Date
syst_time = lv_system_time " System Time
).
私はあなたの最終的な解決策が好きです。それがあなたの問題を解決したら、それを答えにコピーする必要があります。数日後、正しい答えとしてフラグを立てることができます。 – Esti