Description
I already saw the issue #18345, and i respect that .NET core uses the operating system cababilities and that they may differ from what we see on windows.
Problem:
The DateTime.ToShortDateString produces a different string on a Linux (cflinuxfs2 / Ubuntu 14.04) or a Windows 10.
E.g. for "de-CH"
On Windows "01.01.2016"
On Linux "01.01.16"
It seems to me that ToShortDateString uses the "SHORT" ICU format. It is really unfortunate, that the ICU "de_CH" (en_US as well) locale does define the year only as a two digit. If you have dates from the 19th century, this is really a bummer when formatted with only two digits.
Proposal:
Could you at provide a way to use a standard format specifier to use the medium ICU format? (I know, Windows only has short or long)
Or a way to control if the short or medium ICU format is used. (Maybe the short format is not the right choice for some locales and ToShortDateString.)
Because of this i ended up using a custom format string. So I esentially loose the globalization feature for this particular case.
From http://userguide.icu-project.org/formatparse/datetime
SHORT is numeric, such as 12/13/52 or 3:30pm
MEDIUM is longer, such as Jan. 12, 1952
LONG is longer, such as January 12, 1952 or 3:30:32pm
FULL is completely specified, such as Tuesday, April 12, 1952 AD or 3:30:42pm PST