3 votos

Personalizar el formato de fecha de la configuración regional del sistema en las versiones recientes de macOS

Anteriormente era posible personalizar libremente el formato de fecha del sistema en las preferencias de Mac OS hasta alguna versión 10.x con un editor agradable y flexible. captura de pantalla de una versión antigua del sistema operativo

En la actual Ventura, solo hay una selección de formatos predefinidos y solo para la versión corta. captura de pantalla de Ventura

En Atajos, por ejemplo, (casi) todos los marcadores de UTS #35 se pueden utilizar, por lo que el soporte interno está, por supuesto, disponible.

¿Existe alguna forma oculta de seguir personalizando los formatos? Por ejemplo, quiero incluir la semana del calendario como en el formato yyyy-'W'ww-d de la norma ISO 8601.

Puntos extra si este formato luego se puede utilizar en el reloj del sistema.

2voto

Crissov Puntos 225

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:
menú desplegable vacío

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.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X