La pista y el enlace de @aivar-paalberg me ayudaron mucho.
La configuración del formato de fecha se guarda en el archivo oculto ~/Library/Preferences/.GlobalPreferences.plist
. Los valores se pueden consultar con defaults
en Terminal.app y también se pueden cambiar usando defaults write
.
Obteniendo
% defaults find AppleICU
Found 1 keys in domain 'Apple Global Domain': {
AppleICUDateFormatStrings = {
1 = "y-MM-dd";
2 = "y-MM-dd";
};
}
1
es corto, 2
es medio, 3
es largo y 4
es completo en los formatos de fecha CLDR (con precisión hasta el día del calendario).
Configurando
defaults write NSGlobalDomain AppleICUDateFormatStrings -dict-add "1" "yyyyMMdd"
defaults write NSGlobalDomain AppleICUDateFormatStrings -dict-add "2" "d. MMM ’yy"
defaults write NSGlobalDomain AppleICUDateFormatStrings -dict-add "3" "d. MMMM yyyy"
defaults write NSGlobalDomain AppleICUDateFormatStrings -dict-add "4" "EEEE 'KW'ww, d. MMMM yyyy"
Desafortunadamente, la Configuración del Sistema no mostrará un ejemplo en el menú desplegable si difiere de los formatos predefinidos:
Para locales de idioma inglés solamente, los formatos se establecerán automáticamente en una serie de variantes, según CLDR v43:
- corto con número de mes:
M/d/yy
por defecto = EE. UU.
d-M-yy
MV
d/M/y
HK, ZW
d/M/yy
AU, JM, SG
d/MM/yy
NZ
dd.MM.y
CH
dd/MM/y
int., AE, GB
dd/MM/yy
BE, BW, MZ, IN
y-MM-dd
CA, SE
y/MM/dd
ZA
- ISO 8601, formatos más cortos:
yyyyDDD
día ordinal del año
yyyyMMdd
día del mes del año
YYYY'W'wwe
día de la semana del año
yyMMdd
y yy-MM-dd
con siglo implícito eran compatibles antes de la revisión de 2004.
- medio con nombre abreviado o número de mes:
MMM d, y
por defecto = EE. UU.
d MMM y
int., AE, GB
d/MM/y
NZ
dd MMM y
BE, BW, MT, ZA
dd MMM,y
ZW
dd-MM-y
MV
dd-MMM-y
BZ, IN, PK
- ISO 8601:
yyyy-DDD
yyyy-MM-dd
YYYY-'W'ww-e
- largo con nombre completo del mes:
MMMM d, y
por defecto = EE. UU.
d MMMM y
int., AE, GB, MV
dd MMMM y
BW, BZ, MT, ZA, ZW
- completo con día de la semana:
EEEE, MMMM d, y
por defecto = EE. UU.
EEEE d MMMM y
IE, MV
EEEE, d MMMM y
int., AE, GB
EEEE, d MMMM, y
IN
EEEE, dd MMMM y
BW, BZ, ZA, ZW
Apple / ICU admite todos los Símbolos de Campo de Fecha de UTS #35.
PD: Supongo que estos AppleICUDateFormatStrings
se utilizan internamente como la plantilla
predeterminada en algún lugar de DateFormatter
.