How does Date.toLocaleDateString() work?

2019-03-27 20:46发布

问题:

I've to represent the date with local user's configurations. Follows the MDN description:

The toLocaleDateString method relies on the underlying operating system in formatting dates. It converts the date to a string using the formatting convention of the operating system where the script is running. For example, in the United States, the month appears before the date (04/15/98), whereas in Germany the date appears before the month (15.04.98).

I do this:

var date = new Date ();
console.log (date.toLocaleDateString ());

It prints out Saturday, October 13, 2012 but what I expect is Sabato, 13 Ottobre, 2012 (that's the Italian date format). Now, configurations of my browser and my system are set properly (Italian language and the above format date) so I don't understand how does toLocaleDateString work.

Am I doing it right?

回答1:

According to the Mozilla documentation, the format can vary wildly depending on the user's location and computer settings.

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

The exact format depends on the platform, locale and user's settings.



回答2:

This question is out-of-date.

These are my tests:

(new Date ()).toLocaleDateString () -> "4/9/2013" (italian format 'd/m/Y') with Chrome 29
(new Date ()).toLocaleDateString () -> "mercoledì 4 settembre 2013" (italian format 'D d M Y') with Firefox 22

It works with newest browsers versions.