Я пытаюсь обнаружить формат даты (dd/mm/yyyy, mm/dd/yyyy, yyyy/mm/dd) устройств iOS (iPhone, iPad) в моем приложении React Native. Несмотря на выбор разных форматов в настройках устройства, мой код всегда возвращает DD/MM/YY. мм/dd/yyyy или yyyy/mm/dd в настройках. Тем не менее, мой код всегда возвращает формат DD/MM/yyyy, независимо от выбранного формата.
Вот код, который я использую:
let locale = NativeModules.SettingsManager.settings.AppleLocale ||
NativeModules.SettingsManager.settings.AppleLanguages[0];
locale = locale.replace('_', '-');
try {
const formatter = new Intl.DateTimeFormat(locale, {
year: 'numeric',
month: '2-digit',
day: '2-digit',
});
const parts = formatter.formatToParts(new Date(2003, 1, 1)); // 1st Feb 2003
const formatParts = parts.map((part) => {
if (part.type === 'day') return 'dd';
if (part.type === 'month') return 'mm';
if (part.type === 'year') return 'yyyy';
return part.value;
});
const formatPattern = formatParts.join('');
global.deviceLocalDateTimeFormate = formatPattern;
console.log('Device Date Format Pattern:', formatPattern);
} catch (error) {
console.error('Error fetching date format:', error);
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... dd-mm-yyyy