DateTime
.NET 4.5 で次の C# コードを使用して、オブジェクトから文字列を取得しようとしています。
var dateTime = new DateTime(2015, 9, 30);
var str = dateTime.ToString("M/d/yyyy");
Console.WriteLine(str);
通常の状況では、このコードの出力は予想どおり 2015 年 9 月 30 日です。
しかし、コントロール パネルの [地域と言語] に移動し、米国英語の「短い日付」パターンを「dd-MMM-yy」に変更すると、上記のコードは突然 9-30-2015 を表示します!
なぜこれが起こっているのか、どのように修正/回避できるのか誰にも分かりますか? たとえば、地域と言語で「M/d/yy」などの別の短い日付パターンを選択すると、コードは正しく機能することに注意してください。