一、將ABAP時間戳轉換為JAVA時間戳的方法
1、解析
使用 Java 的?SimpleDateFormat?類來解析 ABAP 時間戳字符串,下面是代碼示例:
String abapTimestamp = "20180531120501.123456";SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss.SSSSSS");
2、轉換對象
將 ABAP 時間戳轉換為 Java 中的?Date?對象,下面是代碼示例:
Date date = sdf.parse(abapTimestamp);
3、轉換為毫秒數
使用?getTime()?方法將其轉換為毫秒數,下面是代碼示例:
long millis = date.getTime();
4、得到微秒數
如果 ABAP 時間戳沒有微秒部分,可以將毫秒數乘以 1000 來得到對應的微秒數。下面是代碼示例:
String abapTimestamp = "20190531120501";SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");Date date = sdf.parse(abapTimestamp);long micros = date.getTime() * 1000;
二、將ABAP時間戳轉換為JAVA時間戳的原理
BAP 時間戳和 Java 時間戳都是表示從 1970 年 1 月 1 日 0 時 0 分 0 秒(UTC/GMT)起經過的毫秒數。它們只是數據類型和存儲格式不同,所以可以互相轉換。
在 ABAP 中,時間戳通常保存為字符串類型,格式為?YYYYMMDDhhmmss?或?YYYYMMDDhhmmss.uuuuuu,其中?YYYY?表示年份,MM?表示月份,DD?表示日期,hh表示小時,mm?表示分鐘,ss?表示秒,uuuuuu?表示微秒。
在 Java 中,時間戳通常保存為長整型數據類型?long,表示從 1970 年 1 月 1 日 0 時 0 分 0 秒(UTC/GMT)起經過的毫秒數。
三、ABAP介紹
1、簡介
ABAP(高級商務應用編程)是一種高級語言,由德國軟件公司SAP開發。和最近引入的Java一起,ABAP主要用作SAP的編程。這個服務器軟件是SAP NetWeaver平臺的一部分,這個平臺主要用來開發商務應用。ABAP支持有面向過程和面向對象。
2、歷史
ABAP作為一種面向特定應用的第四代編程語言較早在20世紀80年代開發。它原本是作為一種報表語言應用在SAP R/2上,這是一個幫助大型公司在大型機上建立原材料管理和財務會計管理商務應用的平臺。ABAP本來也是德語AllgemeinerBerichtsaufbereitungsprozessor的縮寫,意思是“通用報表預處理器”。ABAP名列前茅次引入了“邏輯數據庫”的概念,它在基本的數據庫層提供了更高級的抽象。
ABAP編程語言最初被SAP的開發者用于開發SAP R/3平臺。但它也被設計讓SAP的客戶用于增強SAP的軟件應用–客戶可以用ABAP編程開發自定義的報表和界面。這個編程語言對于程序員來說很容易學習但并不是一個非程序設計人員可以直接使用的工具。編寫ABAP程序需要良好的編程技巧和關系數據庫方面的知識,如果知道面向對象設計的概念更好。
雖然SAP較早于1992年就發布了R/3,但ABAP仍可以用于為R/3系統編寫程序。在20世紀90年代,隨著計算機硬件的發展,越來越多的SAP的應用軟件和系統都用ABAP來實現。一直到2001年,幾乎所有的基本功能都是由ABAP編程實現的。在1999年,SAP在發布R/3 4.6版的同時也發布了一個對ABAP的面向對象擴展,叫做ABAP Objects。SAP最新的開發平臺NetWeaver同時支持ABAP和Java。
3、ABAP程序運行在哪里
所有的ABAP程序都駐留在SAP數據庫里。他們不像Java或者C++程序那樣存儲在一個單獨的外部文件里,在數據庫里所有的ABAP代碼都以兩種形式存在:可以用ABAP workbench查看和編輯的源代碼和由ABAP運行環境載入和解釋的“編譯”代碼(技術上更精確地說是“產生”代碼)。當一段ABAP源代碼名列前茅次被調用時會隱含的進行代碼產生。如果稍后源代碼改變了或者程序訪問的對象改變了(比如數據庫的表添加了新的字段),產生代碼就會自動重新產生。
ABAP程序在運行時系統(SAP核心的一部分)的控制下運行在SAP應用服務器里。運行時系統負責處理ABAP語句,控制顯示的邏輯序列和響應事件(比如,用戶按一下屏幕上的一個按鈕)。ABAP運行時系統的一個關鍵組件是數據庫接口,它把ABAP的數據庫無關語句(“開放SQL”)變成底層數據庫管理系統可以理解的語句(“本地SQL”)。數據庫接口處理ABAP程序和關系數據庫之間所有的通信;它也有一些其他的作用,比如把經常訪問的數據緩存到應用服務器本地的存儲器里。
4、ABAP Workbench
ABAP Workbench有幾個不同的工具用于編輯容器對象。這些工具可以為你提供涵蓋整個軟件開發周期各階段的輔助。創建和編輯容器對象的最重要的工具有:
ABAP Editer:編寫程序代碼ABAP Dictionary:處理數據庫表定義,檢索全局類型Menu Painter:設計用戶界面(包括菜單欄,標準工具欄,應用欄,配置功能鍵)Screen Painter:為用戶對話框設計屏幕(動態程序)Function Builder:顯示和處理功能模塊Class Builder:顯示和處理ABAP對象類延伸閱讀1:ABAP在線程序
在線程序(也叫模塊池)不產生列表。這些程序使用一系列的屏幕來定義更復雜的用戶交互模式。術語“屏幕”是指用戶看到的實際的物理圖像。每個屏幕還有一個“流邏輯”;這是指由屏幕觸發的ABAP代碼,比如初始化屏幕,響應用戶請求的應答和控制模塊池的屏幕之間的序列的邏輯。每個屏幕都有自己的流邏輯,每個流邏輯都分為“PBO”(輸出前處理)和“PAI”(輸入后處理)部分。在SAP的文檔中,術語“dynpro”(動態程序)用來表示這種屏幕和流邏輯的結合。