SAP ABAP - Tanggal & Waktu

ABAP secara implisit mereferensikan kalender Gregorian, berlaku di sebagian besar dunia. Kami dapat mengonversi keluaran ke kalender khusus negara. Tanggal adalah waktu yang ditentukan untuk hari, minggu, atau bulan yang tepat sehubungan dengan kalender. Waktu ditentukan ke detik atau menit yang tepat sehubungan dengan satu hari. ABAP selalu menghemat waktu dalam format 24 jam. Keluaran dapat memiliki format khusus negara. Tanggal dan waktu biasanya diartikan sebagai tanggal lokal yang berlaku di zona waktu saat ini.

ABAP menyediakan dua tipe built-in untuk bekerja dengan tanggal dan waktu -

  • Tipe D data
  • Tipe data T.

Berikut ini adalah format dasarnya -

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.

Kedua tipe ini adalah tipe karakter dengan panjang tetap yang masing-masing memiliki bentuk YYYYMMDD dan HHMMSS.

Stempel waktu

Selain tipe built-in ini, dua tipe lainnya TIMESTAMP dan TIMESTAMPLdigunakan di banyak tabel aplikasi standar untuk menyimpan stempel waktu dalam format UTC. Tabel berikut menunjukkan jenis tanggal dan waktu dasar yang tersedia di ABAP.

S.No. Tipe & Deskripsi Data
1

D

Jenis tanggal panjang tetap bawaan dengan format YYYYMMDD. Misalnya, nilai 20100913 mewakili tanggal 13 September 2010.

2

T

Jenis waktu panjang tetap bawaan dari bentuk HHMMSS. Misalnya, nilai 102305 menunjukkan waktu 10:23:05.

3

TIMESTAMP (Tipe P - Panjang 8 Tanpa desimal)

Jenis ini digunakan untuk mewakili stempel waktu singkat dalam bentuk YYYYMMDDhhmmss. Misalnya, nilai 20100913102305 mewakili tanggal 13 September 2010 pukul 10:23:05.

4

TIMESTAMPL (Tipe P - Panjang 11 Desimal 7)

TIMESTAMPL mewakili stempel waktu yang panjang dalam format YYYYMMDDhhmmss, mmmuuun. Di sini, digit tambahan 'mmmuuun' mewakili pecahan dari satu detik.

Tanggal dan Waktu Saat Ini

Cuplikan kode berikut mengambil tanggal dan waktu sistem saat ini.

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.

Kode di atas menghasilkan keluaran sebagai berikut -

Present Date is: 21.09.2015 
Date after 6 Days is: 27.09.2015

Variabel date_1 diberi nilai tanggal sistem saat ini SY-DATUM. Selanjutnya, kita menambah nilai tanggal dengan 6. Dalam hal perhitungan tanggal di ABAP, ini berarti kita meningkatkan komponen hari dari objek tanggal sebanyak 6 hari. Lingkungan waktu proses ABAP cukup pintar untuk menggulir nilai tanggal setiap kali mencapai akhir bulan.

Cara kerja penghitungan waktu mirip dengan penghitungan tanggal. Kode berikut menambah waktu sistem saat ini sebesar 75 detik menggunakan aritmatika waktu dasar.

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: __:__:__'.

Kode di atas menghasilkan keluaran sebagai berikut -

Now the Time is 11:45:05 
A Minute and a Quarter from Now, it is: 11:46:20

Bekerja dengan Stempel Waktu

Anda dapat mengambil waktu sistem saat ini dan menyimpannya dalam variabel stempel waktu menggunakan GET TIME STAMPseperti yang ditunjukkan pada kode berikut. Pernyataan GET TIME STAMP menyimpan cap waktu dalam format long-hand atau short-hand sesuai dengan jenis objek data timestamp yang digunakan. Nilai stempel waktu dienkode menggunakan standar 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.

Kode di atas menghasilkan keluaran sebagai berikut -

The short time stamp is: 18.09.2015 11:19:40 
The long time stamp is: 18.09.2015 11:19:40,9370000

Dalam contoh di atas, kami menampilkan stempel waktu menggunakan penambahan ZONA WAKTU dari pernyataan WRITE. Penambahan ini memformat keluaran stempel waktu sesuai dengan aturan untuk zona waktu yang ditentukan. Bidang sistem SY-ZONLO digunakan untuk menampilkan zona waktu lokal yang dikonfigurasi dalam preferensi pengguna.