Según la documentación {Date object}. toLocaleString() debe usar la configuración regional predeterminada del navegador (cuando no se especifica).
La configuración regional predeterminada es visible con navigator.language .
Cuando mi configuración regional es "en-GB", espero que el formato de salida sea DD/MM/YYY.
En su lugar, devuelve MM/DD/AAAA ("en" o "en-US").
Si especifico que la configuración regional sea "en-GB", el resultado es el esperado.
¿Por qué navigator.locale no se usa para .toLocaleString() ?
Fecha: 24 de noviembre de 2021.
window.navigator.language // default "locale" ? new Date().toString() new Date().toLocaleDateString() // is not using the window.navigator.language new Date().toLocaleDateString("en-GB") // ok, this use the right formatComo señaló Andreas en un comentario, .toLocaleDateString() parece tener algunos errores .
Esta solución parece funcionar:
new Date().toLocaleDateString(window.navigator.language)