ABAP |
您所在的位置:网站首页 › 日期的格式怎么转换 › ABAP |
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 |