How to Get a User’s Date Format in SAP ABAP
SAP allows users to have different date formats based on their user profile settings. You can retrieve the user-specific date format using system parameters and function modules.
1. Get User’s Date Format Using SY-DATLO
and SY-DATFM
DATA: lv_date_format TYPE char10.
lv_date_format = sy-datfm. " User's date format settingWRITE: 'User Date Format:', lv_date_format.
✅ Returns the user’s default date format code
✅ Possible values:
1
→DD.MM.YYYY
(German/European format)2
→MM/DD/YYYY
(US format)3
→YYYY/MM/DD
(ISO format)
2. Convert a Date to the User’s Preferred Format
Use CONVERT_DATE_TO_EXTERNAL
to display a date based on the user settings.
DATA: lv_date TYPE sy-datum, lv_formatted TYPE char10.
lv_date = sy-datum.
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL' EXPORTING date_internal = lv_date IMPORTING date_external = lv_formatted.
WRITE: 'Formatted Date:', lv_formatted.
✅ Automatically formats YYYYMMDD
based on user profile
3. Retrieve User Date Format from Table USR01
If you need the date format for another user, query table USR01
, field DATFM
.
DATA: lv_date_format TYPE char1.
SELECT SINGLE datfm INTO lv_date_format FROM usr01 WHERE bname = sy-uname.
WRITE: 'User Date Format:', lv_date_format.
✅ Fetches the date format stored in user master data
✅ Useful for checking another user’s settings
4. Example: Convert Any Date to User Format Dynamically
DATA: lv_date TYPE sy-datum, lv_date_output TYPE char10.
lv_date = '20240307'. " Example: March 7, 2024
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL' EXPORTING date_internal = lv_date IMPORTING date_external = lv_date_output.
WRITE: 'User-Specific Date:', lv_date_output.
✅ Works for any input date
✅ Follows user’s SAP date format
Summary: Best Methods
Scenario | Method to Use |
---|---|
Get user date format code | sy-datfm |
Convert SAP date to user format | CONVERT_DATE_TO_EXTERNAL |
Convert user input to SAP format | CONVERT_DATE_TO_INTERNAL |
Get another user’s date format | Query USR01-DATFM |