2016-07-07 4 views
6

オーストラリアでは、クライアントが5月1日のショートカットとして"1/5"と入力しています。私達はちょうどLinqPadに次のコードを使用してのWindows Server 2012DateTimeFormatInfo.MonthDayPatternはWindows Server 2012で変更されました。どうすれば元に戻すことができますか?

へのWindows Server 2008から移動してきた:

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-au", false); 
System.Globalization.DateTimeFormatInfo.CurrentInfo.MonthDayPattern.Dump(); 
DateTime.Parse("1/5").Dump(); 

のWindows Server 2008の場合:MMMM

ddは

1/05/2016 12:00:00 AM

Windows Serverの場合201 2 R2:

MMMM D

2016年5月1日午前12:00:00

質問:なぜMonthDayPatternは

  1. が変わりましたか?オーストラリア人はいつも1日目、1ヶ月目を持っています
  2. これはWindows ServerのUIでどこに設定できますか? UIは、月と日の形式ではなく、長形式と短形式のみを公開します
  3. DateTime.Parseがシステム全体で起こっている可能性があることを考えれば、アプリケーションでこの問題をどのように修正できますか検証など)
+0

Linqpadのどのバージョンを使用していますか? – Mick

+0

4、私たちはサーバ上に.Net 4.6を持っていないので使用できません5 – user917170

答えて

2

は...あなたが追加した場合、私は、Windows Server 2012上の問題を複製することができ、

System.Globalization.DateTimeFormatInfo.CurrentInfo.ShortDatePattern.Dump(); 

バインディングあなたはそれを返します参照してくださいよ...

d/MM/yyyy

誤っていると思われるのはMonthDayPatternのみです。これはバグかもしれません。私はhttps://connect.microsoft.com/に問題を記録します。

MMMM dの

D/MM/YYYY:あなたは、単にMonthDayPattern ....

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-au", false); 
System.Globalization.DateTimeFormatInfo.CurrentInfo.ShortDatePattern.Dump(); 
System.Globalization.DateTimeFormatInfo.CurrentInfo.MonthDayPattern.Dump(); 
DateTime.Parse("1/5").Dump(); 
System.Globalization.DateTimeFormatInfo.CurrentInfo.MonthDayPattern = "d MMMM"; 
DateTime.Parse("1/5").Dump(); 

のWindows Server 2012 R2上に設定することができた平均時間で

5/01/2016 12:00:00 AM

1/05/2016 12:00:00 AM

+0

私はあなたが正しいと思います。最も簡単な解決策は、自分自身をスレッドに設定することです。まだ問題が存在する理由を説明していないので、私は接続に関する問題を提起します.... – user917170

+0

こんにちは@ user917170 - これについてMicrosoftから何か聞いたことがありますか?私はちょうど非常に似た問題にぶつかりました。私のサーバはdd MMMMからd MMMMに切り替わり、バグをさらにランダムかつ混乱させました... – kirbatious

関連する問題