2015-10-08 9 views
7

C#.net MVCを使用して開発されたホスティングサイトでは、date formateに問題があります。私の開発マシンで異なるコンピュータまたはOS上の同じカルチャーで、日付の形式が異なるのはなぜですか?

OS:Windows 7の、.NET Frameworkの4.5)スペイン語 - パナマ(ES-PA)の日付メートは、MM/DD/YYとサーバマシンでOSです:Windowsの8 、.net Framework 4.5)同じ文化のためにd/m/yy形式を与えています。

単純なコンソールアプリケーションを使用して確認しました。開発マシン上

public static void Main() 
{ 
    DateTime dt = DateTime.Now; 
    Thread.CurrentThread.CurrentCulture = new CultureInfo("es-PA"); 

    Console.WriteLine(dt.ToString("d")); 

    Console.ReadLine(); 
} 

出力は次のとおりです。サーバー・マシン上で2015年10月8日

出力は次のとおりです。8/10/15

私も言語と地域を変更することではなく、両方のマシンのデフォルトでチェック形式が異なります。

なぜ同じフォーマットの異なるマシンでフォーマットが異なるのですか? これには解決策はありますか?

+3

おそらくデフォルトは、サーバー上のための方法でWindows 7よりも最新の情報を持っている可能性があります「平均的な」ユーザーのためのものではありません – juharr

答えて

3

を設定することによってそれを行うことができるはずですか?

フォーマットは時間の経過と共に、OSのリリースやパッチ/ホットフィックスごとに更新されるため、 .NETはOSからフォーマットをフェッチしています(私はとにかく信じています)、それはあなたが地域の設定で見たように、違いの源泉となるOSです。

解決方法はありますか?

両方のマシンがWindows Updateで最新であることを確認し、可能であれば修正プログラムを確認してください。それ以外の場合は、変更したいものをいつでも手動で更新することができますが、明らかにそれは理想とはかけ離れています。

これは、Windows 8がちょうどは、Windowsアップデートによって対処するつもりではないこと:(

-1

文化には複数の受け入れられた形式があります。 スレッドは、スレッドが実行されているアカウントからカルチャ(したがってフォーマット)を取得します。

例えば、あなたの開発マシンでIIS expressを実行している場合(IISエクスプレスはASP.NETワーカープロセスのWindowsユーザーアカウントを使用します)、Windowsの同じカルチャに対して別の有効な形式に変更することができます。 Webアプリケーションの出力形式。

問題の解決策を提示するのは難しいです。それはまだ同じ日付であり、実際に設定された文化を適切に表示します。あなたは形式を強制したい場合は

ただし、形式は同じ培養のために別のマシンで異なっているのはなぜ例えばCurrentCulture.DateTimeFormat.ShortDatePattern

+1

いいえ、これは問題ではありません。問題は、*同じカルチャー*が異なるマシン上の異なるフォーマットに関連付けられていることです。 –

+0

はい、それは実際に私の指摘です。 – Brandlarm

+0

あなたはあなたの意見を非常に混乱させました。手動で調整されていない限り、オペレーティングシステムの複数のバージョンで同じ文化が同じことを意味すると期待するのは全く合理的です。それはここには当てはまりませんが、あなたはそれを全く説明していません。あなたはそれが問題ではないと主張しますが、間違いなく私の問題のように思えます。ウェブアプリケーションが複数のマシンにまたがっていて、リクエストから希望のカルチャIDを取得したとします。ヒットしたマシンによって異なる結果が表示されるのは奇妙ではないでしょうか? –

関連する問題