Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Needed a FM

Former Member
0 Kudos

Hi,

I had a requirement to check date format of a date field..i need to convert that into standard format.

ex: 11/11/2005(MM/DD/YYYY) to 20051111 (yyyymmdd).

i got a FM DATE_CONV_EXT_TO_INT.

It's working fine with MM/DD/YYYY.

But if i change user format to MM-DD-YYYY ..it's not working.

Can any body suggest me the right FM to use which works for all Instances of formats.

Thanks in adv.

6 REPLIES 6

Former Member
0 Kudos

INSTEAD OF FM..USE THIS PERFORM..

REPORT zanid_test4 MESSAGE-ID zz.

*

DATA INPUT1_DATE(10) TYPE C VALUE '10-05-2005'.

DATA INPUT2_DATE(10) TYPE C VALUE '10/05/2005'.

DATA OUTPUT1_DATE LIKE SY-DATUM.

DATA OUTPUT2_DATE LIKE SY-DATUM.

start-of-selection.

PERFORM CHANGE_FORMAT USING INPUT1_DATE

CHANGING OUTPUT1_DATE.

PERFORM CHANGE_FORMAT USING INPUT2_DATE

CHANGING OUTPUT2_DATE.

&----


*& Form CHANGE_FORMAT

&----


  • text

----


  • -->P_INPUT_DATE text

  • <--P_OUTPUT_DATE text

----


form CHANGE_FORMAT using p_input_date

changing p_output_date.

CONCATENATE p_input_date6(4) p_input_date(2) p_input_date3(2)

INTO p_output_date.

endform. " CHANGE_FORMAT

IT WILL WORK IN BOTH THE CASES.

plz reward points if it helps you.

former_member188685
Active Contributor
0 Kudos

Hi Use the folowing FM's

CONVERT_DATE_TO_EXTERNAL

CONVERT_DATE_TO_INTERNAL

regards

vijay

Former Member
0 Kudos

Anid ..

I need for any format i have given for sample purpose only.

I need for dd.mm.yyyy..etc.

Vijay..

this FMs not working

0 Kudos

Hi Raja,

thats really not possible by any means..

for example: if user gives 30052005..its ofcourse 30th may 2005..

but if user enters 12112005..how would you say its

12 nov 2005, or 11 dec 2005..

why dont you force the user to give a valid date??

just declare the field as : p_date like sy_datum.

Former Member
0 Kudos

Hi Raja,

I hope there is no need of FM to convert it into system

format.

Use the WRITE TO statement.

Check the syntax of WRITE TO statement.

Regards,

Gopi.

Former Member
0 Kudos

Hi guys,

I had gone for the following logic.

select single datfm into usr01-datfm from usr01 where

bname eq sy-uname .

if sy-subrc eq 0 .

move: usr01-datfm to wf_datfm .

endif .

*

if wf_datfm eq '1' .

l_date0(4) = l_dtmp6(4).

l_date4(2) = l_dtmp3(2).

l_date6(2) = l_dtmp0(2).

elseif wf_datfm eq '2' or wf_datfm eq '3' .

l_date0(4) = l_dtmp6(4).

l_date4(2) = l_dtmp0(2).

l_date6(2) = l_dtmp3(2).

elseif wf_datfm eq '4' or wf_datfm eq '5' or wf_datfm eq '6' .

l_date0(4) = l_dtmp0(4).

l_date4(2) = l_dtmp5(2).

l_date6(2) = l_dtmp8(2).

endif .

Is this OK?