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 setting
WRITE: 'User Date Format:', lv_date_format.

Returns the user’s default date format code
✅ Possible values:


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

ScenarioMethod to Use
Get user date format codesy-datfm
Convert SAP date to user formatCONVERT_DATE_TO_EXTERNAL
Convert user input to SAP formatCONVERT_DATE_TO_INTERNAL
Get another user’s date formatQuery USR01-DATFM