ABAP毫不保留地引用了公歷日歷,在世界大部分地區(qū)有效。 我們可以將輸出轉(zhuǎn)換為特定國家/地區(qū)的日歷。 日期是指定到關(guān)于日歷的精確日,周或月的時間。 時間被指定為相對于一天的精確秒或分鐘。 ABAP總是以24小時格式節(jié)省時間。 輸出可以具有特定于國家的格式。 日期和時間通常被解釋為在當前時區(qū)有效的本地日期。
ABAP提供了兩種內(nèi)置類型來處理日期和時間:
以下是基本格式:
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格式的固定長度字符類型。
除了這些內(nèi)置類型,其他兩種類型 TIMESTAMP 和 TIMESTAMPL 在許多標準應(yīng)用程序表中用于存儲UTC格式的時間戳。 下表顯示了ABAP中可用的基本日期和時間類型。
編號 | 數(shù)據(jù)類型和說明 |
---|---|
1 | D 內(nèi)置的固定長度日期類型,格式為YYYYMMDD。 例如,值20100913表示2010年9月13日的日期。 |
2 | T 內(nèi)置固定長度時間類型,格式為HH MM SS。 例如,值102305表示時間10:23:05 AM。 |
3 | TIMESTAMP (類型P - 長度8無小數(shù)) 此類型用于表示YYYYMMDDhhmmss表單中的短時間戳。 例如,值20100913102305表示2010年9月13日上午10:23:05的日期。 |
4 | TIMESTAMPL (類型P - 長度11小數(shù)7) TIMESTAMPL表示YYYYMMDDhhmmss,mmmuuun表單中的長時間戳。 這里,附加數(shù)字“mmmuuun"表示秒的分數(shù)。 |
以下代碼片段檢索當前系統(tǒng)日期和時間。
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.
上面的代碼產(chǎn)生以下輸出:
Present Date is: 21.09.2015 Date after 6 Days is: 27.09.2015
變量date_1分配有當前系統(tǒng)日期SY-DATUM的值。 接下來,我們將日期值增加6.對于ABAP中的日期計算,這意味著我們將日期對象的日期組件增加6天。 ABAP運行時環(huán)境足夠聰明,可以在每月結(jié)束時翻轉(zhuǎn)日期值。
時間計算與日期計算類似。 以下代碼使用基本時間算法將當前系統(tǒng)時間增加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: __:__:__'.
上面的代碼產(chǎn)生以下輸出
Now the Time is 11:45:05 A Minute and a Quarter from Now, it is: 11:46:20
您可以使用 GET TIME STAMP 檢索當前系統(tǒng)時間并將其存儲在時間戳變量中,如以下代碼所示。 GET TIME STAMP語句根據(jù)所使用的時間戳數(shù)據(jù)對象的類型以長指針或短指針格式存儲時間戳。 時間戳值使用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.
上面的代碼產(chǎn)生以下輸出:
The short time stamp is: 18.09.2015 11:19:40 The long time stamp is: 18.09.2015 11:19:40,9370000
在上面的示例中,我們使用TIME ZONE添加WRITE語句顯示時間戳。 此添加根據(jù)指定的時區(qū)的規(guī)則格式化時間戳的輸出。 系統(tǒng)字段SY-ZONLO用于顯示在用戶首選項中配置的本地時區(qū)。
更多建議: