ABAP

您所在的位置:网站首页 日期的格式怎么转换 ABAP

ABAP

#ABAP| 来源: 网络整理| 查看: 265

ABAP - 日期格式转换

现在提供以下一些日期格式转换的函数;

Below are several FMs which can be used to convert date format.

1. CONVERSION_EXIT_IDATE_OUTPUT

    INPUT:      20080203

    OUTPUT:   03FEB2008

2. CONVERT_DATE_TO_EXTERNAL

    INPUT:      20080203

    OUTPUT:   02/03/2008    "According to user's default setting.

3. CONVERT_DATE_TO_INTERNAL

    INPUT:      02/03/2008    "Should be same as the user's default setting

    OUPUT:     20080203

We can also use following code to convert date format as per user's default setting.(change date format as per user's default setting)

以下是自己写的FUN,标准的FUN是CONVERT_DATE_FORMAT,但不能满足我的需求,我们要求根据用户的个人数据设置日期格式来改变日期的显示格式。

 SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #C7EDCC; } .L1S31 { font-style. italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; }FUNCTION ZCONVERT_DATE_FORMAT. *"---------------------------------------------------------------------- *"*"Local interface: *"  IMPORTING *"     REFERENCE(ZNAME) LIKE  USR01-BNAME *"  CHANGING *"     REFERENCE(ZDATE) TYPE  C *"---------------------------------------------------------------------- DATA: lv_datfm LIKE usr01-datfm,         lv_year(4) TYPE c,         lv_month(2) TYPE c,         lv_day(2) TYPE c. *zdate = sy-datum.   lv_year = zdate+0(4).   lv_month = zdate+4(2).   lv_day = zdate+6(2).   SELECT datfm INTO lv_datfm FROM usr01                UP TO 1 ROWS WHERE bname = zname .   ENDSELECT.   IF sy-subrc = 0.     CLEAR zdate.     CASE lv_datfm.       WHEN '1'.         CONCATENATE lv_day                     lv_month                     lv_year INTO zdate SEPARATED BY '.'.       WHEN '2'.         CONCATENATE lv_month                     lv_day                     lv_year INTO zdate SEPARATED BY '/'.       WHEN '3'.         CONCATENATE lv_month                     lv_day                     lv_year INTO zdate SEPARATED BY '-'.       WHEN '4'.         CONCATENATE lv_year                     lv_month                     lv_day INTO zdate SEPARATED BY '.'.       WHEN '5'.         CONCATENATE lv_year                     lv_month                     lv_day INTO zdate SEPARATED BY '/'.       WHEN '6'.         CONCATENATE lv_year                     lv_month                     lv_day INTO zdate SEPARATED BY '-'.     ENDCASE.   ELSE.     CLEAR zdate.     CONCATENATE lv_month                 lv_day                 lv_year INTO zdate SEPARATED BY '.'.   ENDIF. ENDFUNCTION.

ABAP常用日期处理函数

ABAP中常用日期函数:

一、查询两个日期间的日间间隔

  CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'     EXPORTING       I_DATE_FROM          = '20080101' *     I_KEY_DAY_FROM  =       I_DATE_TO                = '20090508' *     I_KEY_DAY_TO        = *     I_FLG_SEPARATE   = ' '    IMPORTING *     E_DAYS                 =      E_MONTHS            = T_MOTH *     E_YEARS              =             .

说明:分别输入开始日期和结束日期,函数返回两个日期间隔的天数、月数、和年数。

二、查询某月的最后一天

 CALL FUNCTION 'LAST_DAY_OF_MONTHS'     EXPORTING       DAY_IN = FSTDAY_NMTH     IMPORTING       LAST_DAY_OF_MONTH = LSTDAY_NMTH     EXCEPTIONS       DAY_IN_NO_DATE = 1       OTHERS = 2.

说明:输入一个日期,函数返回该日期所在月的最后一天的日期。

三、根据日期计算另一个日期

CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'    EXPORTING       DATE            = LSTDAY       DAYS            = 1       MONTHS          = 0       SIGNUM          = '+'       YEARS           = 0    IMPORTING       CALC_DATE       = FSTDAY_NMTH.

说明:输入一个日期,输入间隔的天、月、年,输入运算符,函数返回计算出的日期。

四、计算某日期的第一天

DATA:  T_DATE TYPE DATE VALUE '20100810'.

T_DATE+6(2) = 01.

说明:将日期的天位置一,即为当月第一天。

 

ABAP日期函数

计算两个日期间的工作天数,就是剔除了双休日后的天数.( 待考证)  DATE_CONVERT_TO_FACTORYDATE  HR_HK_DIFF_BT_2_DATES  根据当前时间如何找到上月的第一天和最后一天?  CALL FUNCTION 'FIMA_DATE_CREATE'          EXPORTING               I_DATE                  = SY-DATUM               I_MONTHS                = '-1'               I_SET_LAST_DAY_OF_MONTH = 'X'          IMPORTING               E_DATE                  = LASTDATE.  LASTDATE是上个月最后一天。  FIRSTDAY是上月第一天  CONCATENATE LASTDATE+(6) '01' INTO FIRSTDAY.。  当天是当年的第几周  DATE_GET_WEEK  得到该周第一天  WEEK_GET_FIRST_DAY  查找当前月份以前的月份(比如现在是4月份,如果我需要知道6个月之前是哪个月)  CCM_GO_BACK_MONTHS  RP_CALC_DATE_IN_INTERVAL  获取两日期之间天数函数:  FIMA_DAYS_AND_MONTHS_AND_YEARS  取得当月的第一天和最后一天  CONCATENATE sy-datum(6) '01' INTO so_date-low.  CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'     EXPORTING       i_date = sy-datum     IMPORTING       e_date = so_date-high.  so_date-sign = 'I'. so_date-option = 'BT'. APPEND so_date.  RP_CALC_DATE_IN_INTERVAL 年月日加减  DATE_CHECK_PLAUSIBILITY 日期有效性检查  SD_DATETIME_DIFFERENCE 两日期作差  DATE_CONVERT_TO_FACTORYDATE 把输入日期转为工厂日历日期  MONTH_NAMES_GET 获得所有的月和名字  F4_DATE     弹出一个窗口显示一个日历允许用户选择一个日期。  RP_LAST_DAY_OF_MONTHS 获得一个月的最后一天  FIRST_DAY_IN_PERIOD_GET 获得期间首日  LAST_DAY_IN_PERIOD_GET 获得期间末日  DATE_GET_WEEK      返回一个日期所在的周数。  CALL FUNCTION 'HR_99S_INTERVAL_BETWEEN_DATES'"获得两个日期的年数            EXPORTING              begda   = gdat              endda   = sy-datum            IMPORTING              c_years = l_age.  关于星期(周)的函数  FM:GET_WEEK_INFO_BASED_ON_DATE输入参数                        值  DATE                            2008.01.09输出参数                        值  WEEK                            200802     



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3